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 :

Net::Interface or IO::Interface


Sujet :

Programmation et administration système Perl

  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut Net::Interface or IO::Interface
    Bonjour,

    Je suis sous Mac osx et je cherche a obtenir l adresse Mac de mes interfaces. En cherchant sur cpan j'ai trouve les 2 modules suivant : Net::Interface et IO::Interface.

    Cependant je me retrouve confronte a quelques problemes :
    • Net::Interface : Aucun probleme lors de l installation tout se passe bien cependant lors de l execution de ce simple code :
      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
       
      use IO::Interface::Simple;                                                                                                                         
       
      print "IO::Interface \n";                                                                                                                          
      print "---------------\n";                                                                                                                         
       
      my @interfaces = IO::Interface::Simple->interfaces;                                                                                                
       
      for my $if (@interfaces) {                                                                                                                         
          print "interface = ", $if->name,"\n";                                                                                                          
          print "addr      = ", $if->address,"\n";                                                                                                       
          print "broadcast = ",$if->broadcast,"\n";                                                                                                      
          print "netmask   = ",$if->netmask,"\n";                                                                                                        
          print "hwaddr =    ",$if->hwaddr,"\n";                                                                                                         
      }
      je me retourve avec le resultat suivant :
      .....
      addr = 129.1.2.245
      broadcast = 129.1.2.255
      netmask = 255.255.255.0
      hwaddr =
      .....
      On remarquera que hwaddr est vide ...
    • j essaye alors le module Net::Interface, la deja a l installation je me trouve avec des erreurs lors des testes :
      Running make test
      PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-e" "test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
      t/if.............dubious
      Test returned status 0 (wstat 10, 0xa)
      DIED. FAILED tests 6-7
      Failed 2/7 tests, 71.43% okay
      t/mac_bin2hex....ok
      Failed Test Stat Wstat Total Fail Failed List of Failed
      -------------------------------------------------------------------------------
      t/if.t 0 10 7 4 57.14% 6-7
      Failed 1/2 test scripts, 50.00% okay. 2/9 subtests failed, 77.78% okay.
      make: *** [test_dynamic] Error 2
      /usr/bin/make test -- NOT OK
      je procede alors a un force install et essaye d executer le code suivant :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
       
      use Net::Interface;                                                                                                                                
       
      @all_ifs = Net::Interface->interfaces();                                                                                                           
       
      print "Net::Interface \n";                                                                                                                         
      print "---------------\n";                                                                                                                         
       
      foreach my $if (@all_ifs) {                                                                                                                        
          print "interface =", $if->name,"\n";                                                                                                           
          my $hexstring = $if->hwaddress;                                                                                                                
          print "hwaddr = ", $hexstring , "\n";                                                                                                          
      }
      et j obtiens alors un resultat qui est proche du rien :
      interface =stf0
      hwaddr =
      interface =
      hwaddr =
      interface =???


    Donc voila, que se passe t il avec ces 2 modules, me suis je trompe dans le code ? dans le cas contraire ou chercher pour les faire fonctionner ? mis a pars dans le code source ce que j ai essayer de faire ....

    Et pour tous ceux qui aurai la bonne idee de me conseiller de parser le resultat d "ifconfig" j essaye justement d utiliser des modules pour ne pas avoir a faire cela car le code final fonctionnera sur differents os.

    Merci ,

    PS : ca fait 3 semaines que je me suis mis au perl alors si j ai des erreurs dans le code alors Mea culpa mais bon je me suis base sur les exemples de CPAN.

  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
    Pour ce genre de question, je pense que la moindre tentative de réponse passera d'abord par la sortie de ton "perl -V"
    Par ailleurs, quel est ton OS, et ta carte internet ?

    --
    Jedaï

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    En ce qui concerne la carte ethernet, je pense que cela n entre pas en compte avec les modules ensuite voici mon Perl -V Output :

    Summary of my perl5 (revision 5 version 8 subversion 6) configuration:
    Platform:
    osname=darwin, osvers=8.0, archname=darwin-thread-multi-2level
    uname='darwin b19.apple.com 8.0 darwin kernel version 8.3.0: mon oct 3 20:04:04 pdt 2005; rootnu-792.6.22.obj~2release_ppc power macintosh powerpc '
    config_args='-ds -e -Dprefix=/usr -Dccflags=-g -pipe -Dldflags=-Dman3ext=3pm -Duseithreads -Duseshrplib'
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define use5005threads=undef useithreads=define usemultiplicity=define
    useperlio=define d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
    usemymalloc=n, bincompat5005=undef
    Compiler:
    cc='cc', ccflags ='-g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include',
    optimize='-O3',
    cppflags='-no-cpp-precomp -g -pipe -fno-common -DPERL_DARWIN -no-cpp-precomp -fno-strict-aliasing -I/usr/local/include'
    ccversion='', gccversion='4.0.1 (Apple Computer, Inc. build 5363)', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, prototype=define
    Linker and Libraries:
    ld='env MACOSX_DEPLOYMENT_TARGET=10.3 cc', ldflags ='-L/usr/local/lib'
    libpth=/usr/local/lib /usr/lib
    libs=-ldbm -ldl -lm -lc
    perllibs=-ldl -lm -lc
    libc=/usr/lib/libc.dylib, so=dylib, useshrplib=true, libperl=libperl.dylib
    gnulibc_version=''
    Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef, ccdlflags=' '
    cccdlflags=' ', lddlflags='-bundle -undefined dynamic_lookup -L/usr/local/lib'


    Characteristics of this binary (from libperl):
    Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT
    Locally applied patches:
    23953 - fix for File:ath::rmtree CAN-2004-0452 security issue
    33990 - fix for setuid perl security issues
    SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962
    Built under darwin
    Compiled at Nov 1 2006 17:07:31
    @INC:
    /System/Library/Perl/5.8.6/darwin-thread-multi-2level
    /System/Library/Perl/5.8.6
    /Library/Perl/5.8.6/darwin-thread-multi-2level
    /Library/Perl/5.8.6
    /Library/Perl
    /Network/Library/Perl/5.8.6/darwin-thread-multi-2level
    /Network/Library/Perl/5.8.6
    /Network/Library/Perl
    /System/Library/Perl/Extras/5.8.6/darwin-thread-multi-2level
    /System/Library/Perl/Extras/5.8.6
    /Library/Perl/5.8.1
    .

  4. #4
    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
    Ok, et que dit ifconfig ?

    --
    Jedaï

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    32
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 32
    Par défaut
    En quoi cela pourra t il te renseigner si je te montre ce qu il y a dans mon ifconfig ? Du coter systeme tous va bien...

Discussions similaires

  1. [LablGtk2] Interface POO ou interface procédurale ?
    Par SpiceGuid dans le forum Caml
    Réponses: 7
    Dernier message: 25/08/2008, 00h04
  2. [LablGtk2] Interface POO ou interface procédurale ?
    Par SpiceGuid dans le forum GTK+
    Réponses: 4
    Dernier message: 23/08/2008, 22h17
  3. Classe VS.Net 2005 basée sur interface VS.Net 2003 ?
    Par dotnet dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 19/02/2007, 10h37
  4. Interface d'une interface
    Par tbonacco dans le forum UML
    Réponses: 1
    Dernier message: 26/01/2007, 16h32
  5. Réponses: 7
    Dernier message: 12/10/2005, 15h21

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