IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Programmation et administration système Perl Discussion :

Faire un ping sweep (ICMP scanning)


Sujet :

Programmation et administration système Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Par défaut Faire un ping sweep (ICMP scanning)
    Bonjour à tous,

    Je souhaiterai faire un PING SWEEP (autrement appelé ICMP scanning je crois) en Perl.

    Actuellement, je scanne une plage IP de classe C pour remonter les équipements alive, en faisant successivement un ping ICMP (ou UDP) sur chaque adresse. C'est comme vous pouvez l'imaginer assez long...

    J'ai vu qu'il existait une méthode le ping sweep pour ça. La méthode consiste, d'après ce que j'ai pu lire, à lancer une requête ping sur une machine A, puis de passer à la machine suivante, sans attendre le retour du premier ping. Cela permet d'accélérer considérablement le processus.

    Je présume que cela doit être possible également en Perl (peut-etre un module quelque part?) mais je n'ai pas trouvé malgré mes recherches


    Voilà, si vous avez une idée, si vous avez déjà utilisé le ping sweep en Perl, merci d'avance de me donner un petit coup de main!

    PS : J'ai posté ce même message dans la section "développement réseau", je ne sais pas trop où mettre mon message!

  2. #2
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Le module Net:ing (qui fait partie de la librairie standard) te permet de faire ça facilement, voici un exemple tiré de la doc qui montre la technique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        # Like tcp protocol, but with many hosts
        $p = Net::Ping->new("syn");
        $p->{port_num} = getservbyname("http", "tcp");
        foreach $host (@host_array) {
          $p->ping($host);
        }
        while (($host,$rtt,$ip) = $p->ack) {
          print "HOST: $host [$ip] ACKed in $rtt seconds.\n";
        }
    Avec le protocole "syn" (spécifié dans le new()), le ping() envoie simplement un paquet 'syn' à $host, puis retourne immédiatement. ack() permet d'attendre qu'un destinataire quelconque réponde.

    --
    Jedaï

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2004
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 79
    Par défaut
    Bonjour,


    Effectivement, je ne l'avais pas vu.. Par contre, cela marche pour le moment très aléatoirement...
    J'ai un tableau d'adresse IP avec parmi celles ci 4 IP de machines "alive" et le script me les détecte parfois et parfois pas...

    J'ai mis un timeout à 5s au cas où mais tjs pareil...

    A quoi sert cette ligne?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        $p->{port_num} = getservbyname("http", "tcp");
    Je n'en comprends pas tout à fait la signification...

Discussions similaires

  1. comment faire un ping en asp ?
    Par vever88 dans le forum ASP
    Réponses: 47
    Dernier message: 24/04/2008, 11h42
  2. Faire un PING avec Matlab
    Par cococococococo dans le forum MATLAB
    Réponses: 1
    Dernier message: 10/07/2007, 07h48
  3. faire un ping en c++
    Par oclone dans le forum C++
    Réponses: 10
    Dernier message: 11/12/2006, 21h25
  4. Réponses: 2
    Dernier message: 20/11/2006, 05h00
  5. PERL : faire un ping sweep
    Par TigreRouge dans le forum Développement
    Réponses: 4
    Dernier message: 27/04/2006, 16h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo