Вам необходимо использовать «протоколы» для делегирования или предоставления данных в AsynTask
.
Делегаты и источники данных
Делегат - это объект, который действует от имени, или в координации с другим объектом, когда этот объект встречает событие в программе. ( Определение Apple )
протоколы - это интерфейсы, которые определяют некоторые методы делегирования некоторых действий.
java.net. NetworkInterface.getHardwareAddress (метод, добавленный в Java 6)
, Это нужно назвать на машине, Вы интересуетесь - MAC не передается через границы сети (т.е. LAN и WAN). Если бы Вы хотите использовать его на сервере веб-сайта для опроса клиентов, необходимо было бы выполнить апплет, который сообщит результат Вам.
Для Java 5 и более старый я нашел код вывод парсинга инструментов командной строки в различных системах .
Можно получить адрес, который соединяется с ServerSocket с помощью http://java.sun.com/javase/6/docs/api/java/net/NetworkInterface.html#getInetAddresses ()
Однако, если клиент соединится через NAT, то Вы получите адрес маршрутизатора а НЕ Ethernet-адреса. Если это находится в Вашей локальной сети (через концентратор/переключатель, никакой маршрутизатор с NAT) это, wil работают, как предназначено.
На самом деле, помимо других правильных ответов (JDK 6; exec 'ifconfig'), существуют библиотеки на основе JNI. Java Uuid Generator (JUG) 2.0 содержит код для некоторых платформ. Это работает как минимум на JDK 1.2 и выше (может быть, даже на 1.1)