OVH Cloud OVH Cloud

Net::Whois

7 réponses
Avatar
franck
Bonjour,
Continuant mon apprentissage de perl,

je bute sur ceci:
use Net::Whois;
$domain_obj = Net::Whois::Domain->new(perl.org);


Resultat:
net::Whois::Domain=ARRAY(0x1a00de4)

Pourquoi ce résultat . Le livre ne le dit pas!

7 réponses

Avatar
Sébastien Bourgasser
franck wrote:
Bonjour,
Continuant mon apprentissage de perl,

je bute sur ceci:
use Net::Whois;
$domain_obj = Net::Whois::Domain->new(perl.org);


Resultat:
net::Whois::Domain=ARRAY(0x1a00de4)

Pourquoi ce résultat . Le livre ne le dit pas!




Parce que le résultat est un tableau

Essayez d'ajouter:

use Data::Dumper;
print Dumper $domain_obj;

--
Séb

Avatar
frank
Merci pour votre réponse.
Voici le résultat que j'obtiens maintenant ...

$VAR1 = bless( [
{
'MATCH' => 0
}
], 'Net::Whois::Domain' );

Qu'est ce que cela veut dire ? Ce service n'existe plus ? Peut-etre mon
livre est trop vieux !



"Sébastien Bourgasser" a écrit dans le
message de news: 43751adc$0$7444$
franck wrote:
Bonjour,
Continuant mon apprentissage de perl,

je bute sur ceci:
use Net::Whois;
$domain_obj = Net::Whois::Domain->new(perl.org);


Resultat:
net::Whois::Domain=ARRAY(0x1a00de4)

Pourquoi ce résultat . Le livre ne le dit pas!




Parce que le résultat est un tableau

Essayez d'ajouter:

use Data::Dumper;
print Dumper $domain_obj;

--
Séb



Avatar
DoMinix
franck wrote:
Bonjour,
Continuant mon apprentissage de perl,

je bute sur ceci:
use Net::Whois;
$domain_obj = Net::Whois::Domain->new(perl.org);


Resultat:
net::Whois::Domain=ARRAY(0x1a00de4)

Pourquoi ce résultat . Le livre ne le dit pas!




Whois a une interface objet.
essaie
print "Domain: ", $domain_obj->domain ;

regarde aussi perldoc Net::Whois

@+

--
dominix

Avatar
frank
Whois a une interface objet.
essaie
print "Domain: ", $domain_obj->domain ;

regarde aussi perldoc Net::Whois

@+

--
dominix


bonjour dominix,
Merci pour la réponse.

J'ai suivi l'exemple et j'abouti quasiement toujours au meme résultat :

a) exemple 1
$domain_obj = Net::Whois::Domain->new(perl.org) || die "Can't connect to
Whois servern";
print $domain_obj;
print $domain_obj en direct : Net::Whois::Domain=ARRAY(0x1a01714)



b) exemple 2
use Net::Whois;
use Carp;
$domain_obj = Net::Whois::Domain->new(perl.org) || die "Can't connect to
Whois servern";
unless ($domain_obj->ok) { croak "No match for perl.org";}
print "nDomain: ", $domain_obj->domain, "n" ;
print "Name: ", $domain_obj->name, "n";
print "Tag: ", $domain_obj->tag, "n";
print "Address:n", map { " $_n" } $domain_obj->address"n";
print "Country: ", $domain_obj->country, "n";
print "Name Server:n", map { " $$_[0] ($$_[1])n" }
@{$domain_obj->servers};

my ($c, $t);
if ($c = $domain_obj->contacts) {
print "Contacts:n";
for $t (sort keys %$c) {
print " $t:n";
print map { "t$_n" } @{$$c{$t}};
}
}
print "Record created:", $domain_obj->record_created,"n" ;
print "Record updated:", $domain_obj->record_updated ;

(soit l'exemple du perldoc)
No match for perl.org at C:PerlDEVRSOwhois.pl line 7

J'suis pas un krak en perl, mais j'aimerais bien comprendre pourquoi ceci ne
fonctionne pas !

Cordialement.
Frank

Avatar
TiChou
Dans le message <news:437771ba$0$20175$,
*frank* tapota sur f.c.l.perl :

J'ai suivi l'exemple et j'abouti quasiement toujours au meme résultat :
[...]

No match for perl.org at C:PerlDEVRSOwhois.pl line 7

J'suis pas un krak en perl, mais j'aimerais bien comprendre pourquoi ceci
ne fonctionne pas !


Ça fonctionne bien puisque vous obtenez une réponse : "No match for
perl.org".
Certes, ce n'est sûrement pas la réponse à laquelle vous vous attendiez.
Pourquoi cette réponse alors ? Parce que le module Net::Whois est très vieux
et obsolète car il n'interroge que les bases de donnée de l'InterNIC et de
Network Solutions qui, à l'époque, avaient en charge les TLDs .com, .net et
.org. Aujourd'hui ce n'est plus le cas en particulier pour le .org.

--
TiChou

Avatar
frank
Merci TiChou pour cette réponse.

Il y à t'il qqchose qui le remplace ?
ou bien ce service est tombé aux oubliettes.

Merci


"TiChou" a écrit dans le message de news:

Dans le message <news:437771ba$0$20175$,
*frank* tapota sur f.c.l.perl :

J'ai suivi l'exemple et j'abouti quasiement toujours au meme résultat :
[...]

No match for perl.org at C:PerlDEVRSOwhois.pl line 7

J'suis pas un krak en perl, mais j'aimerais bien comprendre pourquoi ceci
ne fonctionne pas !


Ça fonctionne bien puisque vous obtenez une réponse : "No match for
perl.org".
Certes, ce n'est sûrement pas la réponse à laquelle vous vous attendiez.
Pourquoi cette réponse alors ? Parce que le module Net::Whois est très
vieux et obsolète car il n'interroge que les bases de donnée de l'InterNIC
et de Network Solutions qui, à l'époque, avaient en charge les TLDs .com,
.net et .org. Aujourd'hui ce n'est plus le cas en particulier pour le
.org.

--
TiChou



Avatar
TiChou
Dans le message <news:438384e9$0$19695$,
*frank* tapota sur f.c.l.perl :

Il y à t'il qqchose qui le remplace ?


Il existe plusieurs modules pour les différents TLDs. Mais aucun module à ma
connaissance qui gèrerai l'ensemble des TLDs.

ou bien ce service est tombé aux oubliettes.


Le mieux est à mon avis de faire appel à une commande whois externe comme
celle disponible ici : http://www.linux.it/~md/software/

--
TiChou