Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14

Discussione: [JAVA] Servizio ping

  1. #1

    [JAVA] Servizio ping

    Ciao a tutti..
    qualcuno sa per caso come si realizza un programma java capace di pingare un host?
    Che classe si utilizza?

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    per esempio, su Windows

    codice:
    public class pinger {
      public static void main (String args[]) {
        Runtime r = Runtime.getRuntime();
        try {
          Process p = r.exec("cmd /k \"ping google.com > pinger.txt\"");
        } catch (Exception e) {System.out.println("Qualcosa è andato storto: " + 
    
    e.toString());}
      }
    }
    > pinger.txt serve a salvare il risultato del ping su in un file di testo
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    La classe InetAddress di Java ha delle funzioni come quelle svolte da programmi come Ping e Nslookup.

    A partire da Java 5.0 è possibile verificare se un host è vivo e raggiungibile usando il metodo isReachable (la funzione è equivalente al comando ping e credo sia quello che ti interessa).

    Ciao

  4. #4
    Credo che la richiesta riguardasse l'implementazione di un programma 'ping' fatto da zero e non la chiamata a un eseguibile di sistema già esistente.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  5. #5
    gia proprio cosi... partendo da zero, non richiamando il ping.exe!

    Mi fate un esempio di codice ?

  6. #6
    Non conosco java ma essenzialmente posso dirti la teoria che è comune a tutti i linguaggi. Devi lavorare a basso livello creando:
    un pacchetto ip contenente ip sorgente e destinazione.
    un pacchetto icmp definendo tipo (ECHO_REQUEST), ID number, checksum e il payload con cui riempire il campo data (il ping di windows ad es ci inserisce tutte le lettere dell'alfabeto).

    Successivamente crei un socket di tipo RAW:
    s = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP)
    s.setsockopt(IPPROTO_IP, IP_HDRINCL, 1)

    ...mandi il tutto (pacchetto ICMP incapsulato in quello IP) all'ip di destinazione e con lo stesso socket attendi gli ECHO REPLY di risosta che potrai stampare a video.
    Penso che trimite google puoi facilmente trovare esempi di codice (il ping è uno dei primi esercizi che si fanno con le socket raw).

    Saluti
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  7. #7
    cosi come lhai messo tu è in C++ ?

  8. #8
    Intendi il SOCK_RAW? E' preso da un codice Python ma penso che in Java sia simile se non addirittura uguale.
    Rilasciata Python FTP Server library 0.5.1
    http://code.google.com/p/pyftpdlib/

    We'll be those who'll make the italian folks know how difficult can be defecating in Southern California without having the crap flying all around the house.

  9. #9
    ah grazie...cerchero in giro

  10. #10
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.