Heim >Java >javaLernprogramm >Warum kann mein Java-Programm keine anderen Hosts als Localhost anpingen?
Fehlerbehebung bei Ping-Problemen in Java
Beim Versuch, eine IP-Adresse mit Java anzupingen, kann bei einigen Benutzern das Problem auftreten, dass der lokale Host erreichbar ist aber alle anderen Hosts geben die Meldung „Host ist NICHT erreichbar“ zurück. Dieser Artikel untersucht die zugrunde liegende Ursache und bietet eine mögliche Lösung.
Codeillustration
Das bereitgestellte Codefragment versucht, zwei IP-Adressen anzupingen: localhost (127.0.0.1) und eine externe Adresse (173.194.32.38). Die Methode isReachable() gibt true zurück, wenn der Host innerhalb des angegebenen Timeouts (5000 Millisekunden) erreichbar ist, andernfalls false.
Ursache
Gemäß der Java-Dokumentation Die Methode isReachable() verwendet normalerweise ICMP ECHO REQUESTs, um die Erreichbarkeit des Hosts zu bestimmen. Für die Verwendung von ICMP sind jedoch häufig erhöhte Berechtigungen (Root-Berechtigungen) erforderlich.
Lösung
Option #1: Administratorrechte erhalten
Wenn ICMP nicht blockiert ist Durch die Systemfirewall kann das Problem darin bestehen, dass der Code nicht mit ausreichenden Berechtigungen zum Ausführen von ICMP-Vorgängen ausgeführt wird. Versuchen Sie, das Programm mit Administratorrechten auszuführen.
// Windows > runas /profile /user:administrator java -jar myapp.jar // Unix/Linux > sudo java -jar myapp.jar
Wenn ICMP blockiert ist, besteht die zweite Option darin, stattdessen TCP zu verwenden.
Option #2: TCP-Ping aktivieren
<code class="java">// This example uses the Google DNS server String ipAddress = "173.194.32.38"; try { Socket socket = new Socket(); socket.connect(new InetSocketAddress(ipAddress, 80), 5000); System.out.println("Host " + ipAddress + " is reachable"); } catch (IOException e) { System.out.println("Host " + ipAddress + " is NOT reachable"); }</code>
Das obige ist der detaillierte Inhalt vonWarum kann mein Java-Programm keine anderen Hosts als Localhost anpingen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!