Avatar billede dmg Nybegynder
06. maj 2009 - 00:26 Der er 8 kommentarer og
1 løsning

Pinge i java

Hej experts,

Kan det virkelig være rigtigt man ikke kan pinge fra java?

Har lavet noget research overalt på nettet og det viser sig java ikke suppotere ICMP?

Der må da være en workaround... some how?

Vil gerne lave et program i java hvor jeg starter en ping session ved at klikke på en knap.
Avatar billede arne_v Ekspert
06. maj 2009 - 00:46 #1
Avatar billede arne_v Ekspert
06. maj 2009 - 00:47 #2
Det er et generisk koncept for at teste om en node er reachable. Men den laver en ping.
Avatar billede dmg Nybegynder
06. maj 2009 - 00:55 #3
Hej Arne,

Tak for hurtigt svar. Syntes det ser lidt forvirrende ud.
Mine java skills er ret lave.

Jeg skal ha en persistant ping kørende så jeg hele tiden kan se om jeg mister pings.

Er det muligt at køre en windows kommando fra java?
Altså fra java programmet starte et windows vindue prompt der køre pings?

Det ville være ligeså godt?
Mange tak
Avatar billede dmg Nybegynder
06. maj 2009 - 00:57 #4
Prøvede nedenstående men det jeg får fejl:

String command = "ping 4.2.2.1 -t";
Process child = Runtime.getRuntime().exec(command);

Fandt dette på: http://www.exampledepot.com/egs/java.lang/Exec.html?l=new
Avatar billede dmg Nybegynder
06. maj 2009 - 01:12 #5
Hej arne,

Jeg fandt dette link som virkede:
http://www.linglom.com/2007/06/06/how-to-run-command-line-or-execute-external-application-from-java/

Jeg kan ændre kommandoen til ping 4.2.2.1 og det virker mange tak for for hurtgit svar!
Avatar billede arne_v Ekspert
06. maj 2009 - 01:15 #6
Eksempel med isReachable:

import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Date;

public class Pinger {
    public static void main(String[] args) throws UnknownHostException, IOException, InterruptedException {
        while(true) {
            Date t = new Date();
            String status = InetAddress.getByName("localhost").isReachable(1000) ? "up" : "down";
            System.out.println(t + ": " + status);
            Thread.sleep(5000);
        }
    }
}
Avatar billede dmg Nybegynder
06. maj 2009 - 02:06 #7
Hej Arne,

Meget interessant. Når jeg ændre "localhost" til "4.2.2.1" eller "www.google.com" er status down?

"localhost" viser up.

Jeg skal ha lavet et program der først og fremmest kan åbne en command prompt fra en java GUI og køre pings i prompten. Så det script jeg fandt virker. Nu skal jeg bare ha fundet ud af hvordan jeg kan åbne en command prompt ved at klikke på en knap i java.

Jeg ville meget gerne ha givet dig points eftersom du har været meget behjælpelig, men nu har jeg lukket tråden :(
Mange tak for hjælpen!
Avatar billede arne_v Ekspert
11. maj 2009 - 03:42 #8
Lidt søgning på Java fora afslører at på trods af teksten i docs for isReachable så laver den kun ping på *nix men bruger echo servicen på Windows.

:-(
Avatar billede arne_v Ekspert
11. maj 2009 - 03:43 #9
Med hensyn til GUI har jeg svaret i:
  http://www.eksperten.dk/spm/874169
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester