Bonjour, j'ai besoin d'exécuter la commande ping code> à l'aide du code Java et d'obtenir un résumé de l'hôte Ping. Comment faire en Java? P>
4 Réponses :
Comme Viralpatel spécifié, vous pouvez utiliser suivi est un exemple de celui-ci p> Sortie < / forte> p> référence http: / /www.velocityreviews.com/forums/t146589-ping-class-java.html p> p> runtime.exec () code>
Je souhaite ajouter sa sortie en HTML au lieu de PrintLn lorsque j'essaie de le faire, il continue à exécuter pendant une longue période, puis je l'annule!
Que dois-je faire pour l'ajouter à HTML?
Je pense que vous travaillez avec servlet code>, vous pouvez ajouter le texte au servlet HTML à l'aide de l'objet Printwriter
Pouvez-vous m'aider à cet égard?
Je n'ai aucune idée de c'est pourquoi je vous le demande de vous
i Méthode d'appel de JSP et au serveur IPend String et cette chaîne je le renvoie
Laissez-nous Continuez cette discussion en chat
Découvrez cette bibliothèque de ping pour Java, je fais: p>
http://code.google.com/p/jingy/ p >
Peut-être que cela peut aider p>
Il ne supporte que UNIX? Vous devez également inclure le support Windows si vous voulez que votre bibliothèque soit utile ...
inetAddress code> est une méthode qui utilise la demande ECHO ECMP (AKA ping) pour déterminer la disponibilité des hôtes.
String ipAddress = "192.168.1.10";
InetAddress inet = InetAddress.getByName(ipAddress);
boolean reachable = inet.isReachable(5000);
Sous Windows, il semble que Java n'utilise pas de ping et de valeur par défaut à la connexion TCP sur le port 7, qui est généralement bloquée par un pare-feu. Sous UNIX, le ping nécessite un accès root et donc généralement par défaut du port 7. Par conséquent, il est inutile d'être inutiles dans des environnements de production.
Le code ci-dessous fonctionnera sur le système Windows et Linux,
public static boolean isReachable(String url) throws MalformedURLException { if (!url.contains("http") && !url.contains("https")) { url = "http://" + url; } URL urlObj = new URL(url); url = urlObj.getHost(); url = "ping " + url; try { Process p = Runtime.getRuntime().exec(url); BufferedReader inputStream = new BufferedReader( new InputStreamReader(p.getInputStream())); String s = ""; while ((s = inputStream.readLine()) != null) { if (s.contains("Packets: Sent") || s.contains("bytes of data")) { return true; } } return false; } catch (Exception e) { e.printStackTrace(); return false; } }
Vulnérable à l'injection de commandement, S.Contains ("octets de données") code> sera sur chaque sortie de ping sous Windows, quel que soit l'état haut ou en bas. Ainsi, ce code reviendra toujours vrai, sauf si le processus ne parvient pas à démarrer
@ BheSh-Gurung j'ai commencé une petite bibliothèque Java code.google.com/p/jingy . Toujours beaucoup de travail (commencé aujourd'hui)