Как получить MAC-адрес клиента от HttpServlet? - PullRequest
24 голосов
/ 08 мая 2009

Меня попросили написать сервлет, который собирает данные клиента, такие как IP-адрес, MAC-адрес и т. Д.

получить его IP довольно просто (request.getRemoteAddr()), но я не могу найти элегантный способ получить его MAC-адрес.

кажется разумным, что веб-сервер имеет доступ к таким данным, как Mac-адрес и т. Д., Поскольку он получает пакеты TCP и все. эти данные где-то записываются? это доступно?

(я работаю над Tomcat6)

Ответы [ 5 ]

40 голосов
/ 08 мая 2009

Вы, вероятно, не получите то, что хотите. (MAC-адрес клиента)

Если сервер находится достаточно близко (напрямую подключен через концентратор или коммутатор), вы можете ARP для MAC-адреса. Если вы сделаете это для IP через Интернет, вы, вероятно, получите внутренний интерфейс ближайшего маршрутизатора или коммутатора.

Из-за того, как работает TCP / IP, MAC-адрес, используемый в «кадре», будет срываться и перекомпоновываться каждый раз при каждом переходе информации между сервером и хостом.

alt text

Инкапсуляция

8 голосов
/ 08 мая 2009

TCP / IP ... Вы не можете получить MAC-адрес, это слишком низкий уровень AFAIK

0 голосов
/ 15 сентября 2015

этот скрипт работает с максимальной вероятностью 100%, что он работает на вашем локальном хосте, но вы должны проверить это с вашим веб-хостом

есть код php, который намного лучше

<font color="black" face="courier new">
<b>mac/linux/android</b>(arp -an)<br>

<?php
$mac = system('arp -an');
echo $mac;
echo "<hr>";
?>
<b>mac/linux/android</b>(ifconfig)<br>
<?php
$macall = system('ifconfig');
echo $macall;
echo "<hr>";
?>
<b>pc/win</b>(ipconfig /all)<br>
<?php
$pc = system('ipconfig /all');
echo $pc;
echo "<hr>";
?>
</font>
0 голосов
/ 08 мая 2009

Это невозможно через класс HttpServlet.

Единственный способ, которым я могу придумать, возможно, получить MAC-адрес пользователя, - это использовать Javascript на стороне клиента для его извлечения, а затем поместить его в файл cookie, который затем может прочитать ваш сервер. Но я не знаю, возможно ли получить MAC-адрес с использованием Javascript - это кажется угрозой безопасности для браузера, позволяющего вам сделать это, поскольку он выходит за пределы песочницы браузера, но, возможно, есть какой-то хакерский ход, чтобы это сделать.

0 голосов
/ 08 мая 2009

Я считаю, что клиенты должны допустить, чтобы это произошло в их JVM:

См. Тема

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...