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:
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 :
Citation:
.....
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 :
Citation:
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:
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 :
Citation:
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 :D ,
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.