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 :

connaitre son adresse IP


Sujet :

Programmation et administration système Perl

  1. #1
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122
    Par défaut connaitre son adresse IP
    Bonjour,

    j'aimerais savoir comment faire pour connaitre son adresse IP dans un script Perl. Il serait préférable que ça marche qussi bien sous Windows que ss Linux.


    merci.

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    S'agit il de connaître son adresse IP locale, celle du poste, à l'intérieur d'un réseau, qu'il soit public ou privé, ou bien au contraire, de connaître l'IP publique sous laquelle apparaît un poste appartenant à un réseau privé.

    En d'autres termes, veux tu connaître l'IP du poste sur lequel le script tourne, ou bien l'IP attribuée par un FAI et derrière laquelle se cache tout un sous-réseau ?


    Ce code récupère l'adresse de la machine. Je ne l'ai pas testé sous Windows, mais j'ai relativement confiance.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    #!/usr/bin/perl
     
    use warnings;
    use strict;
     
    use Net::Domain qw(&hostname); 
    my $nom=hostname ();
     
    use Net::hostent;
    my $info=gethost ("$nom");
    my @bin_ip=split(//, $info->[4]->[0]);
    my @ip;
    push (@ip, unpack ("C", $_)) foreach (@bin_ip);
     
    print "Machine : $nom --> addr : $ip[0].$ip[1].$ip[2].$ip[3]\n";

    Pour trouver l'IP attribuée par un FAI, on peut consulter un site public nous affichant notre adresse publique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/usr/bin/perl
     
    use warnings;
    use string;
     
    use LWP::Simple;
     
    my $page=get("http://www.adresseip.com/");
     
    if ($page=~m/(\d+\.\d+\.\d+\.\d+)/) {
      print "Mon adresse est $1\n";
    }
    Ceci devrait être parfaitement portable.

    Cependant, la qualité du résultat dépend d'un site externe.
    Dans le cas d'un SOHO (Small Office Home Office), il est possible d'interroger l'interface web d'un éventuel routeur/firewall pour obtenir cette information de manière plus sûre et plus rapide. La requête est alors à adapter pour tenir compte de l'authentification nécessaire.

  3. #3
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122
    Par défaut
    Merci pour ta réponse.

    A vrai dire, je ne sais pas de quelle adresse j'ai besoin

    Je dois programmer un client FTP et j'ai besoin d'envoyer l'adresse IP du client au serveur pour le mode actif.

    Je ne sais donc pas si c'est l'adresse du poste ou celle du routeur (ip publique) que je dois envoyer.

    J'imagine que ça serait plutot l'adresse publique du routeur pusque une adresse non routable ( 192.168.1.11 ) n'a aucun sens sur Internet. De l'autre coté, si j'envoi l'IP publique du routeur, ce dernier dernier devra faire du NAT pour rediriger les requetes vers la machine du client.

    Je suis un peu perdu.

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Après vérification, les deux scripts sont parfaitements portables. 8)

    Citation Envoyé par Tex-Twil
    Je dois programmer un client FTP et j'ai besoin d'envoyer l'adresse IP du client aus serveur pour le mode actif.

    Je ne sais donc pas si c'est l'adresse du poste ou celle du routeur (ip publique) que je dois envoyer.

    J'imagine que ça serait plutot l'adresse publique du routeur.
    Epineuse question ...

    Le FTP en mode actif passe-t'il à travers les routeurs et du NAT ? J'ai un doute...

    Il me semble avoir lu, il y a peu, un article dénonçant l'usage du NAT qui rend Internet "non-routable de bout en bout", et qui impose la traduction des adresses encapsulées dans la partie données des trames routées. Le FTP en mode actif tomberait alors dans ce genre de problème

    Pour la suite de ton projet, peut être trouveras-tu des réponses sur le forum Développement réseaux.

  5. #5
    Membre régulier Avatar de Tex-Twil
    Inscrit en
    Avril 2004
    Messages
    447
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 447
    Points : 122
    Points
    122
    Par défaut
    merci.

    j'ai regardé les commandes exécutées par un client ftp (Bullet Proof) et je remarque qu'il envoie l'adresse du post en mode actif : 192.168.1.11 !

    Je ne comprends pas alors comment le serveur peut se connecter sur cette adresse.

Discussions similaires

  1. Connaitre son adresse reseau avec le nombre d'adresses possibles
    Par serigne dans le forum Administration
    Réponses: 23
    Dernier message: 05/03/2015, 15h30
  2. Connaitre son adresse IP Publique
    Par marouene_ dans le forum Linux
    Réponses: 18
    Dernier message: 23/11/2011, 23h47
  3. Réponses: 5
    Dernier message: 24/05/2008, 08h31
  4. Connaitre son adresse IP sur internet
    Par dafdan dans le forum C++Builder
    Réponses: 4
    Dernier message: 25/01/2007, 22h12
  5. Connaitre son adresse ip publique
    Par samball dans le forum C++
    Réponses: 6
    Dernier message: 04/07/2006, 00h37

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