Neden İnetAddress.IP adresi ping varken return false isReachable,?
InetAddress byName = InetAddress.getByName("173.39.161.140");
System.out.println(byName);
System.out.println(byName.isReachable(1000));
Neden isReachable
false
döner? IP ping edebilirim.
CEVAP
< . em^"" . isReachable yöntem birçok durumda benim için kullanmaya layık değildir. Alt ve dış ana bilgisayarlar (yani google.com) çözümleme online yeteneğin varsa ... genel olarak *NİX makineler üzerinde çalışmak gibi görünüyor sadece test için benim alternatif kaydırarak görebilirsiniz.
Sorunu
Bu konuda sohbet eden bir çok şey var :
Burada diğer benzer sorular
Ve hatta bu aynı konuda bildirilen bir hata :
Bölüm 1 : tekrarlanabilir örnek sorun
Bu durumda, başarısız olduğunu unutmayın.
//also, this fails for an invalid address, like "www.sjdosgoogle.com1234sd"
InetAddress[] addresses = InetAddress.getAllByName("www.google.com");
for (InetAddress address : addresses) {
if (address.isReachable(10000))
{
System.out.println("Connected " address);
}
else
{
System.out.println("Failed " address);
}
}
//output:*Failed www.google.com/74.125.227.114*
Bölüm 2 : Hackish Geçici Bir Çözüm
Alternatif olarak, bunu yapabilirsiniz :
Process p1 = java.lang.Runtime.getRuntime().exec("ping -c 1 www.google.com");
int returnVal = p1.waitFor();
boolean reachable = (returnVal==0);
-C seçeneğipingsadece sunucu bir kez ulaşmak için terminal kullanarak alıştık ki sonsuz ping aksine) denemek için ping izin verir.
Bu döndürecektirEv sahibi ise 0 ulaşılabilir. Aksi takdirde, "" bir dönüş değeri. 2 alacak
Çok daha basit - ama tabii ki belirli bir platform. Ve bu komutu kullanarak belirli ayrıcalık yanlışlıklar olabilir ama benim bilgisayarda çalışır buluyorum.
LÜTFEN Unutmayın : 1) Bu çözüm, üretim kalitesi değil. Bir hack onun biraz. Eğer google ya da sizin internet yavaş geçici olarak, ya da belki de sana funniness senin ayrıcalıkları/sistem ayarları, eğer iade yanlış negatif (yani olabilir başarısız olsa giriş adresi ulaşılabilir). 2) isReachable başarısızlığı olağanüstü bir konudur. Yine orada birçok online kaynakları belirten yok "mükemmel" bir şekilde yapıyor bu tarihte bu yazı nedeniyle yol JVM çalışır ulaşmak için ana - sanırım bir özünde belirli bir platform görevi olan, ancak basit değil, henüz yeterince soyutlanmış tarafından JVM.
Neden "not(True) [False] Doğru mu...
Neden Çift yapar.==Çift NaN.Return fal...
Neden 128==128 return false ama 127==1...
olay.() preventDefault vs return false...
Neden Matematik yapıyor.yuvarlak(0.499...