Получить свой мак-адрес.

 
 
 
Сообщения:11
Всем привет. Я тут пытался получить свой мак адрес, и да, для самых умных - я погуглил сначала перед тем как писать. Прямо насиловал гугл. Очень много примеров кода нашел. Когда копирую и запускаю код у себя выводиться ошибка. Всех кодов использовал проверил, у всех ошибка даже на английских ресурсах. Вывод такой что может проблема на железе или же виртуальной машине?
Вод код который
InetAddress ip;
        try {

            ip = InetAddress.getLocalHost();
            System.out.println("Current IP address : " + ip.getHostAddress());

            NetworkInterface network = NetworkInterface.getByInetAddress(ip);

            byte[] mac = network.getHardwareAddress();

            System.out.print("Current MAC address : ");

            StringBuilder sb = new StringBuilder();
            for (int i = 0; i < mac.length; i++) {
                sb.append(String.format("%02X%s", mac[i], (i < mac.length - 1) ? "-" : ""));
            }
            System.out.println(sb.toString());

        } catch (UnknownHostException e) {

            e.printStackTrace();

        } catch (SocketException e){

            e.printStackTrace();

        }

и результат. Пожалуйста,проверьте у себя и отпишитесь о результате.
Java: самая последняя прям вчера скачал. Среда: Intellij Idea тоже последняя версия.
Машина: макбук про к сожелению не последний) ОС: Мак ос сиерра.

Еще вопрос. Собственно зачем мне нужен мак адрес. я подумал привязать программу на конкретную машину с мак адресом. Если у кого есть идеи по лучше то приветствуются.
 
 
Сообщения:1527
Ничего удивительного.
Current IP 127.0.0.1 не является интерфейсом Ethernet и следовательно не имеет MAC address
Если ip будет что то вроде 192.168.*.* - код сработает корректно.
Машина вообще к какой нибудь сети LAN / WAN подключена?
 
 
Сообщения:142
нетворк интерфейсов тащемта много, у меня на любой машинке где работаю их от четырех до шести штук, шерсти все

 
 
Сообщения:11
Imix:
Машина вообще к какой нибудь сети LAN / WAN подключена?

wi-fi.
Imix:
Current IP 127.0.0.1 не является интерфейсом Ethernet и следовательно не имеет MAC address

значить надо ставить типа 192.168.0.1?
как я понял, программа-то не сработает если подключения к инету будет с 3Г модема.
есть ли возможность узнать мак адрес наверняка, т.е. не зная заранее Current IP или тип подключения к инету?
 
 
Сообщения:1527
1. Ранее упомяналось о дружбе с гууглом, т.ч. c прочтением какой нибудь статьи об устройстве Ethernet/Internet сетей проблем не должно быть.
2. По поводу getLocalHost()
Quote:
127.0.0.1 (а если точнее, сеть 127/8, он же loopback, он же localhost) - IP-адрес, с помощью которого компьютер может обратиться по сети к самому себе, независимо от наличия у него подключения к сети, вида оной и адреса компьютера в ней.

3. В общем случае на PC может быть несколько сетевых интерфейсов - встроенная Ethernet карта, wi-fi адаптер, 3/4 G модем и т.д. К одному из них привязано тек. соединение с сетью (наприм. интернет)
4. В свойствах соединения можно посмотреть Current IP, который должен отличаться от 127.0.0.1
5. А теперь любимая Java и как было сказано выше шерсти все)))
получить список всех интерфейсов устройства
Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
для каждого из них посмотреть имя и Current IP
for (NetworkInterface netint : Collections.list(nets))
//вот тут getName() и getInetAddresses()
}

интефейсы с 127.0.0.1 на три буквы)) а у 192.*.*.* запросить долгожданный MAC
Изменен:30 ноя 2016 17:51
 
Модераторы:Нет
Сейчас эту тему просматривают:Нет