Как Вы получаете Ethernet-адрес с помощью Java?

Вам необходимо использовать «протоколы» для делегирования или предоставления данных в AsynTask.

Делегаты и источники данных

Делегат - это объект, который действует от имени, или в координации с другим объектом, когда этот объект встречает событие в программе. ( Определение Apple )

протоколы - это интерфейсы, которые определяют некоторые методы делегирования некоторых действий.

Вот полный пример !!!

24
задан liut0 9 July 2014 в 06:09
поделиться

3 ответа

java.net. NetworkInterface.getHardwareAddress (метод, добавленный в Java 6)

, Это нужно назвать на машине, Вы интересуетесь - MAC не передается через границы сети (т.е. LAN и WAN). Если бы Вы хотите использовать его на сервере веб-сайта для опроса клиентов, необходимо было бы выполнить апплет, который сообщит результат Вам.

Для Java 5 и более старый я нашел код вывод парсинга инструментов командной строки в различных системах .

17
ответ дан skolima 29 November 2019 в 00:18
поделиться

Можно получить адрес, который соединяется с ServerSocket с помощью http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses ()

Однако, если клиент соединится через NAT, то Вы получите адрес маршрутизатора а НЕ Ethernet-адреса. Если это находится в Вашей локальной сети (через концентратор/переключатель, никакой маршрутизатор с NAT) это, wil работают, как предназначено.

3
ответ дан Doug Miller 29 November 2019 в 00:18
поделиться

На самом деле, помимо других правильных ответов (JDK 6; exec 'ifconfig'), существуют библиотеки на основе JNI. Java Uuid Generator (JUG) 2.0 содержит код для некоторых платформ. Это работает как минимум на JDK 1.2 и выше (может быть, даже на 1.1)

2
ответ дан 29 November 2019 в 00:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: