Мне нужно знать MAC-адрес и IP-адрес подключенных клиентов, как я могу сделать это на PHP?
php
mac-address
Neveen
источник
источник
Ответы:
IP сервера
Вы можете получить IP-адрес сервера от
$_SERVER['SERVER_ADDR']
.MAC-адрес сервера
Для MAC-адреса вы можете проанализировать вывод
netstat -ie
в Linux илиipconfig /all
в Windows.IP-адрес клиента
Вы можете получить IP-адрес клиента от
$_SERVER['REMOTE_ADDR']
MAC-адрес клиента
MAC-адрес клиента не будет вам доступен, за исключением одного особого обстоятельства: если клиент находится в том же сегменте Ethernet, что и сервер.
Итак, если вы строите какую-то систему на основе локальной сети и ваши клиенты находятся в одном и том же сегменте Ethernet, то вы можете получить MAC-адрес, проанализировав выходные данные
arp -n
(linux) илиarp -a
(windows).Изменить : вы спрашиваете в комментариях, как получить вывод внешней команды - один из способов заключается в использовании обратных галочек, например
Но что, если клиент не в локальной сети?
Что ж, вам не повезло, если вы не можете заставить клиента добровольно передать эту информацию и передать ее другими способами.
источник
MAC-адрес клиента (в смысле компьютера, который выдал HTTP-запрос) перезаписывается каждым маршрутизатором между клиентом и сервером.
Клиентский IP удобно указывается в скрипте в
$_SERVER['REMOTE_ADDR']
. В некоторых сценариях, особенно если ваш веб-сервер находится за прокси-сервером (т. Е. Прокси-сервер кэширования)$_SERVER['REMOTE ADDR']
, возвращает IP-адрес прокси-сервера , и часто возникает дополнительное значение$_SERVER['HTTP_X_FORWARDED_FOR']
, которое содержит IP-адрес исходного клиента запроса.Иногда, особенно когда вы имеете дело с анонимным прокси, который вы не контролируете, прокси не возвращает реальный IP-адрес, и все, на что вы можете надеяться, это IP-адрес прокси.
источник
Я не думаю, что вы можете получить MAC-адрес в PHP, но вы можете получить IP из
$_SERVER['REMOTE_ADDR']
переменной.источник
Для Windows Server, я думаю, вы можете использовать это:
источник
exec
только `echogetmac
Все, что вам нужно сделать, это положить ARP в другую группу.
По умолчанию:
С командой:
ты получишь:
А поскольку apache - это демон, работающий под пользовательскими данными www, теперь он может выполнять эту команду.
Так что если вы сейчас используете скрипт PHP, например:
вы получите вывод команды linux
arp -an
.источник
arp
двоичного файла является избыточным,www-data
все еще имеет разрешения на выполнение изother
режима.Используйте этот класс (https://github.com/BlakeGardner/php-mac-address)
Это класс PHP для манипулирования MAC-адресами поверх операционных систем Unix, Linux и Mac OS X. это было прежде всего написано, чтобы помочь со спуфингом для беспроводных аудитов безопасности.
источник
В Windows, если пользователь использует ваш скрипт локально, это будет очень просто:
источник
Вы можете использовать следующее решение для решения вашей проблемы:
источник
Мы можем получить MAC-адрес в Ubuntu этим способом в php
источник
Получение MAC-адреса с использованием PHP: (протестировано в Ubuntu 18.04) - обновление 2020
Вот код:
Вывод:
источник
Возможно, получение адреса Mac не лучший способ проверки компьютера клиента через Интернет. Попробуйте вместо этого использовать токен, который сохраняется в браузере клиента с помощью логина администратора.
Поэтому клиент может иметь этот токен только в том случае, если администратор предоставит его ему через браузер. Если токен отсутствует или действителен, значит, клиентский компьютер недействителен.
источник
Вы можете получить MAC- адрес или физический адрес, используя этот код
Я использовал explode много раз, потому что shell_exec ("ipconfig / all") возвращает полную информацию о всей сети. поэтому вы должны разделить по одному. когда вы запустите этот код, вы получите
свой MAC-адрес 00 - ## - ## - CV-12 // это поддельный адрес только для показа.
источник
Это работает для меня в Windows, как
ipconfig /all
и системная команда Windows.источник
В Linux с помощью iptables вы можете регистрировать в файле каждый запрос к веб-серверу с MAC-адресом и IP-адресом. из php искать последний элемент с IP-адресом и получить MAC-адрес.
Как указано, помните, что MAC-адрес от последнего маршрутизатора на трассе.
источник
Вы можете сделать это легко, используя openWRT. Если вы используете портал авторизации, вы можете смешать php и openWRT и установить связь между IP и mac.
Вы можете написать простой код PHP, используя:
Позже, используя openWRT, вы можете перейти к
/tmp/dhcp.leases
форме, которую вы получите:Там у вас есть Mac, IP-адрес и имя хоста.
источник