2011-08-01 2 views
3

Я пытался сделать JFrame, который имел кнопку & текстовая область/метки, мотив будучи в состоянии восстановить свой системный IP-адрес, проблема, когда я использую этот кодКак получить системный IP-адрес с помощью Java?

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           
     try 
     { 
      InetAddress ownIP=InetAddress.getLocalHost(); 
      jTextField1.setText(ownIP.getHostAddress()); 
     } 
     catch (Exception e) 
     { 
      jTextField1.setText(e.getMessage()); 
     } 
    } 

Но тогда это дает мне обратно петлю назад IP-адрес, 127.0.0.1 :( У меня есть статический IP настроен на моей системе, но также, что IP не отображается я использую NetBeans IDE 7.0 & Ubuntu 11,04

+0

Проверьте это, он не может помочь: http://stackoverflow.com/questions/494465/how-to-enumerate-ip-addresses-of-all-enabled-nic-cards-from-java – Philippe

+0

None of 'em работает, удивляйтесь, почему ... :( – Roshan

ответ

2

FWIW, InetAddress.getLocalHost().getHostAddress() дает мне мой действительный ip-адрес.

FYI, я запустил его из модульного теста в Eclipse на macbook.

+0

Он по-прежнему дает мне 127.0.0.1 в качестве моего вывода :( – Roshan

+0

У меня есть статический IP-адрес, такой как 192.xxx.xx.xxx Возникает ли в классе IP проблема. . – Roshan

4

Вы можете получить все IP-адреса для вашей системы. Используйте метод NetworkInterface.getNetworkInterfaces() для извлечения всех сетевых интерфейсов. Для каждого из возвращаемых интерфейсов используйте метод getInetAddresses() для извлечения всех связанных адресов.

+0

Возможно, вы либо хотите, чтобы 'wlan0' или' eth0'. 'Lo' ссылается на loopback. –

+1

Вы можете отфильтровать loopback с помощью метода isLoopback(). Если вы запустите как IPv4, так и IPv6, вам также может понадобиться для фильтрации одного или другого путем проверки типа InetAddress на Inet4Address или Inet6Address. – prunge

Смежные вопросы