Bir ana bilgisayar adını ilgili IP adresine çözümlemeye çalışıyorum. InetAddress.getByName, proxy'nin arkasında başarısız oluyor
Ortamım, sistem tercihleri aracılığıyla otomatik proxy yapılandırması aracılığıyla bir .pac dosyasıyla yapılandırılmış bir proxy sunucusunun arkasındaki bir şirket ağındaki bir mac var. Şimdiye kadar her şey iyi çalışıyor ve şirket ağımın içindeki ve dışındaki kaynaklara erişebiliyorum. InetAddress.getByName("host.local");
Ama dış ana bilgisayar adlarını kullanırken, bir UnknownHostException olsun: my ağı içinde ana çözme
mükemmel çalışıyor ben ( InetAddress.getByName("google.com");
Exception in thread "main" java.net.UnknownHostException: google.com
at java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)
at java.net.InetAddress$1.lookupAllHostAddr(InetAddress.java:850)
at java.net.InetAddress.getAddressFromNameService(InetAddress.java:1201)
at java.net.InetAddress.getAllByName0(InetAddress.java:1154)
at java.net.InetAddress.getAllByName(InetAddress.java:1084)
at java.net.InetAddress.getAllByName(InetAddress.java:1020)
at java.net.InetAddress.getByName(InetAddress.java:970)
at Test.main(Test.java:67)
üretir
(Inet6AddressImpl
hakkında biraz şaşkınAnladığım kadarıyla, inetAddress.getByName, ana makine adlarını çözmek için yerel mekanizmaları kullanıyor. Bu yüzden hataya java jvm içindeki eksik bir proxy yapılandırmasından kaynaklandığını düşünmüyorum.
Ama her şey yolunda gidiyorsa başka ne olabilir?
bazıları (belki) yararlı ek bilgiler:
Ben bir MacBook kullanıyorum,
ifconfig
, lo0 gif0, stf0, fw0, en0 arayüzleri gösterir en1 -> ipv4 ile, ağa bağlı adres. konsoldanslookup google.com
aynı İstisna
Bu hatanın nedeni hakkında herhangi bir fikir üretti ağı içinde bir windows makinede ** server can't find google.com: NXDOMAIN
aynı kod döndürür? Veya java'da ana bilgisayar adlarını çözümlemenin başka yolları var mı?
Cevabınız için teşekkürler Alexander. Ağ uzmanı değilim, ancak bu, google.com'a (ve tabii ki bu siteye;) şirket ağından erişemediğim anlamına gelmez mi? Pac dosyasının, proxy'yi ne zaman kullanacağını ve ne zaman kullanılmayacağını tanımladığını biliyorum. Belki bir jvm isteği için pac "yürütme" ile ilgili bir sorun? – Benjamin
Alexander doğrudur. Trafiğiniz Google'a gönderilir ve proxy'ye gönderilir. Bu, trafiği Google web sunucusuna göndermeden önce DNS'in kendisini arar. – EricLaw
@Benjamin. Kurumsal tarayıcınız üzerinden google.com'a ulaşabiliyorsanız, java programınız için proxy'yi yapılandırmanız gerekebilir. Yardım için şu makaleyi okuyun: http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html –