Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Функция для определения mac адреса
Сработает, только если пользователь не работает через прокси (иначе это будет MAC-адрес последнего хоста на пути следования tcp-пакета). Так же возможны "глюки", если пользователь делает первое обращение к серверу (ибо в этом случае у сервера для его машины еще нет записи в arp таблице).
P.S. Скрипт написан мной "на коленке", проверялся только в Win32, поэтому не претендует на полную правильность.
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Неужто. А с чего Вы взяли, что getenv('REMOTE_ADDR') вернет адрес loopback-интерфейса?
Если имеется ввиду определение собственного адреса, то есть Вы запускаете функцию для локального адреса (например, у Вас веб-сервер слушает 127.0.0.1 и Вы запускаете скрипт на машине веб-сервера), то это неудивительно.
Функция предназначена для определения mac-адреса клиента, который запустил скрипт в локальной сети.
Можете дописать для случая локального адреса - то есть если getenv('REMOTE_ADDR') возвращает реально свой IP-адрес, то пользоваться не arp-таблицей, а ifconfig для unix или ipconfig для windows.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Ch_chov
Отправлено: 14 Сентября, 2009 - 09:25:00
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Цитата:
Функция предназначена для определения mac-адреса клиента, который запустил скрипт в локальной сети.
Надо было сразу уточнить. mac адреса клиентов из сети определяются нормально.
З.Ы. Для определения локального mac адреса в windows удобней пользовать getmac
EuGen
Отправлено: 14 Сентября, 2009 - 11:04:43
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Ch_chov пишет:
Надо было сразу уточнить.
А какой смысл определять свой собственный?
А getmac, насколько я помню, не показывает привязки к IP-адресу, что, в случае нескольких сетевых интерфейсов, делает невозможным решение задачи определения mac-адреса по IP.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Ch_chov
Отправлено: 14 Сентября, 2009 - 11:41:56
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
Цитата:
А какой смысл определять свой собственный?
Это уже другой вопрос. Может кому то понадобится собрать сведения о своей системе или еще что то.
Uchkuma
Отправлено: 07 Июля, 2010 - 09:07:32
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
В чем может быть дело, если массив $rgResult пуст? В случае, если система не WINNT.
EuGen
Отправлено: 09 Июля, 2010 - 11:22:10
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Выполните на своей машине arp -a и посмотрите, в каком формате система отдает таблицу. (хотя маловероятно, что в другом)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Uchkuma
Отправлено: 09 Июля, 2010 - 12:49:01
Участник
Покинул форум
Сообщений всего: 1539
Дата рег-ции: Март 2010 Откуда: Киров
Помог: 6 раз(а)
С форматом все в порядке. Отсутствует нужный IP в таблице.
EuGen
Отправлено: 13 Июля, 2010 - 11:49:26
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Если отсутствует, значит, не делался никакой запрос на определение mac-адреса нужной машины.
Если эта машина вызывала скрипт, то это возможно только в случае, если она находится в другом сегменте сети (за сетевым устройством 2-го уровня и выше)
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.