Yerel IP adresini java uygulamamdan belirlemek istiyorum. Sorun, aynı makinede, LAN ve internet bağlantılarına (avuç içi, VMWare ...) bulunan birkaç IP adresi olduğunda ortaya çıkar.java uygulamasından doğru yerel IP adresini alın
public static void main(String[] args) {
try {
String hostName = InetAddress.getLocalHost().getHostName();
System.out.println("HostName = " + hostName);
System.out.println("HostAddressLocal = " +
InetAddress.getLocalHost().getHostAddress());
InetAddress[] inetAddresses = InetAddress.getAllByName(hostName);
for (InetAddress inetAddress : inetAddresses) {
System.out.println("hostAddress = " + inetAddress.getHostAddress());
}
} catch (Exception e) {
e.printStackTrace();
}
}
sonucudur:
İşte benim sınavım
HostName = xxxx
HostAddressLocal = xx.xx.xx.xx
hostAddress = 10.10.11.51
hostAddress = 192.168.23.1
hostAddress = 192.168.106.1
xx.xx.xx.xx doğru adres değil. Doğru 10.10.11.51'dir. jarnbjo cevaben
DÜZENLEME:
Kişisel kristal top doğruyu söylemek. Benim problemimi anladın. İstemci bir proxy üzerinden bağlanabilir, böylece ilk noktanızı kullanamıyorum. Bilgisayarımda Aşağıda bu kodu çalıştırmak durumunda: GetHostName dibinde
Internet IP = /127.0.0.1
Ve 10.10.11.51
Bunu mu demek istediniz: applet? Bir ana ile ve yerel UP adresine erişmek mümkün? –
Bu sorunu da yaşadık. – KLE
Tam olarak ne yapmaya çalışıyorsunuz? Neden bu bilgiye ihtiyacın var? Kullanıcı yerel bir adrese sahip değilse ne olur? Kullanıcı birçok arayüze ve birçok yerel adrese sahipse ne olur? Kullanıcı IPv6 (her arabirimin potansiyel olarak birçok adresi olabilir) varsa ne olur? Programınızda bazı tasarım problemleri var, doğru çalışması için bu özelliğe asla güvenmemeliyiz. – Juliano