Java kullanan bir bilgisayarın LAN IP adresini nasıl alabilirim? Yönlendiriciye ve ağın geri kalanına bağlı IP adresini istiyorum.Java kullanan bir istemcinin LAN IP'sini nasıl alabilirim?
Socket s = new Socket("www.google.com", 80);
String ip = s.getLocalAddress().getHostAddress();
s.close();
Bu bazı durumlarda çalışmıyor gibi görünüyor, ama bazen geri döngü-adresini veya tamamen farklı bir şey verir:
Böyle bir şey denedim. Ayrıca internet bağlantısı gerektirir.
Bunu yapan daha doğru bir yöntem var mı?
DÜZENLEME: bir yorumda daha burada sormak daha iyi olacağını düşündüm .. birçok arayüzleri var ne
? Örneğin, biri kablolu, biri wifi, diğeri sanal kutu vb. Hangisinin ağa bağlı olduğunu görmek imkansız mı?
+1, 'if (cur.isLoopback())' – aioobe
Birçok arabiriminiz varsa ne olur? Örneğin, biri kablo için, biri wifi için ve diğeri sanal kutu için. ağa hangisinin bağlı olduğunu acctually görmek imkansız mıdır? – cragiz
@Henrik. Bu durumda hepsi "bağlandı". Dış yönlendirme için hangisinin kullanılacağını belirlemek OS'nize kalmıştır. Bu Soket yapıcıyı http://java.sun.com/j2se/1.5.0/docs/api/java/net/Socket.html#Socket(java.net.InetAddress%%%%%;%20int%%20java.net adresinde kullanabilirsiniz. Belirli yerel adresi ve bağlantı noktasını almak veya varsayılan soketi oluşturmak ve belirli bir arabirime bağlamak için InetAddress,% 20int). Ayrıca, NetworkInterface nesnesinden gereksinim duyduğunuz bilgileri de belirleyebileceğinizi kontrol edin. –