Вопрос

Откуда мне знать MAC-адрес посетителей на хостинге Linux (Nginx)?

От пользователя Ethernet.

Спасибо.

Это было полезно?

Решение

Вы не можете получить это через PHP.

Протокол сети используются в стеке. При выполнении HTTP Communications ваш веб-сервер использует протокол HTTP, отвечающий за коммуникации высокого уровня. Этот протокол реализован в верхней части протокола TCP (который приносит потокоподобные соединения и номера портов), которые, в свою очередь, реализуются в верхней части протокола IP (V4 или V6, которые приносят IP-адреса для идентификации), которые в Поворот реализован в верхней части протокола Ethernet.

Протокол Ethernet - это тот, с которым вам нужно будет работать. Он имеет и исходный MAC-адрес и MAC-адрес назначения. Однако, к сожалению, с этим много проблем.

Во-первых, данные, которые она передает, вероятно, трудно доступен: я говорю «, вероятно,», потому что я никогда не наткнулся на то, как это сделать.

Во-вторых, как вы получаете адрес маршрутизатора вашего клиента, когда они получают доступ к вашему сайту, вы получаете MAC-адрес маршрутизатора вашего клиента на уровне Ethernet. Если они не пройдут любой маршрутизатор (который произойдет только в том случае, если ваш сервер был непосредственно подключен к вашему клиентскому компьютеру без какого-либо маршрутизатора, потому что есть много маршрутизаторов для других деталей для других частей Интернета), Нет вероятности, что MAC-адрес, который вы получите, будет вашим клиентом.

В-третьих, Apache никогда не попытается получить доступ к этому данным. А поскольку PHP «Sandboxed» в сетевой среде Apache дает его, вы не можете вернуться к протоколу Ethernet.

Поэтому доступ к MAC-адресу посетителя с веб-сайта, от PHP невозможно.

РЕДАКТИРОВАТЬ Кажется, вы вывели деталь PHP с вашего вопроса. Так очевидно, последний момент больше не будет стоять.

Другие советы

Вы не можете получить это с PHP, он не включен в http

Чем более общий вопрос это один. Отказ Поскольку весь PHP должен работать (я предполагаю, что это PHP работает на вашем веб-сервере, здесь) - это запрос HTTP, вы не сможете получить MAC-адрес. Это требует чего-то бегущего на стороне посетителя.

Это может или не может работать. Я знаю, что это будет работать на клиентах LAN, однако для внешних клиентов это может быть неверным. Я не знаю свои сети, но стоит выстрел правильно?

Если вы выполняете команду ARP -A в Windows или Linux, он распечатает ваши записи ARP, которые вы можете проанализировать для Mac.

Кроме того, насколько я знаю, Apache (и там PHP) не просто выдает MAC-адреса в его env vars.

* Отредактировано: Извините, что не будет работать ... Лучшая утилита проживает, однако, что просто даст вам Mac вашего маршрутизатора.

Если вы хотите сделать это, клиенты должны быть напрямую подключены к вашему серверу, без маршрутизатора между ...

Однако, если это так, то arping будет работать ... Я не знаю лучшего инструмента, но кажется немного расточительным, чтобы сделать пинг (в корне) для просто MAC-адреса.

MAC-адрес виден только для сетевого провайдера, если я правильно (ваш интернет-хост может увидеть MAC-адрес вашего маршрутизатора), не думаю, что вы можете получить его с PHP.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top