Я не думаю, что это возможно.
Если вы визуализируете маршрут от клиента до вашего сервера; вдоль этого маршрута есть «прыжки», , т.е. , маршрутизаторы и коммутаторы, которые направляют запрос клиента по одному из нескольких путей.
На каждом прыжке в пакет вставляется отдельный MAC-адрес - это MAC-адрес следующего перехода на маршруте.
Таким образом, хотя IP-адрес всегда остается неизменным на протяжении всего маршрута (следовательно, вы можете использовать переменные сервера или тому подобное для определения IP-адреса клиента) MAC-адрес, который вы получаете на сервере после последнего перехода, фактически является MAC адрес последнего сетевого устройства, через которое был направлен запрос.
Единственный способ точно использовать этот MAC-адрес для какого-либо контроля доступа - это если у вас не было оборудования для маршрутизации или переключения между вами и всеми клиентами.