Heim Java javaLernprogramm Warum kann mein Java-Programm keine anderen Hosts als Localhost anpingen?

Warum kann mein Java-Programm keine anderen Hosts als Localhost anpingen?

Oct 25, 2024 am 09:09 AM

Why Can't My Java Program Ping Hosts Other Than Localhost?

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
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte Mar 07, 2025 pm 06:09 PM

Top 4 JavaScript -Frameworks in 2025: React, Angular, Vue, Svelte

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle? Mar 17, 2025 pm 05:35 PM

Wie funktioniert der Klassenladungsmechanismus von Java, einschließlich verschiedener Klassenloader und deren Delegationsmodelle?

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung? Mar 17, 2025 pm 05:46 PM

Wie benutze ich Maven oder Gradle für das fortschrittliche Java -Projektmanagement, die Erstellung von Automatisierung und Abhängigkeitslösung?

Node.js 20: wichtige Leistungssteigerung und neue Funktionen Node.js 20: wichtige Leistungssteigerung und neue Funktionen Mar 07, 2025 pm 06:12 PM

Node.js 20: wichtige Leistungssteigerung und neue Funktionen

ICEBERG: Die Zukunft von Data Lake Tabellen ICEBERG: Die Zukunft von Data Lake Tabellen Mar 07, 2025 pm 06:31 PM

ICEBERG: Die Zukunft von Data Lake Tabellen

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache? Mar 17, 2025 pm 05:44 PM

Wie implementiere ich mehrstufige Caching in Java-Anwendungen mit Bibliotheken wie Koffein oder Guava-Cache?

Wie kann ich funktionale Programmierungstechniken in Java implementieren? Wie kann ich funktionale Programmierungstechniken in Java implementieren? Mar 11, 2025 pm 05:51 PM

Wie kann ich funktionale Programmierungstechniken in Java implementieren?

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behoben Spring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behoben Mar 07, 2025 pm 05:52 PM

Spring Boot Snakeyaml 2.0 CVE-2022-1471 Problem behoben

See all articles