К сожалению, вы не можете получить MAC-адрес только с помощью PHP.
Раньше я работал в компании, направленной на прямой маркетинг, поэтому нам приходилось профилировать каждое действие пользователя (даже анонимное), в результате чего мы отслеживали пользователя по его идентификатору сеанса и отрицательному идентификатору для анонимных пользователей. и положительный идентификатор для зарегистрированных:
$new_guest_id = SELECT MIN(0, `id`) - 1 AS `id` FROM `users`;
$new_registered_id = SELECT MAX(0, `id`) + 1 AS `id` FROM `users`;
Отрицательные идентификаторы пользователя будут время от времени очищаться с помощью задания CRON:
DELETE FROM `users` WHERE `id` < 0 AND `date` <= DATE_SUB(CURDATE(), INTERVAL 7 DAY);