Moduł Net::hostent

Uniwersytet Gdański - Instytut Matematyki - Zakład Informatyki - Strona domowa

Spis treści

  1. Opis
  2. Przykład
  3. Dodatkowe informacje

Opis

Moduł półpragmowy przesłaniający dwie funkcje podstawowe: gethostbyname i gethostbyaddr. Po zamianie, funkcje te zwracają obiekt Net::hostent (lub undef w przypadku niepowodzenia). Obiekt klasy Net::hostent przypomina strukturę "struct hostent" z biblioteki języka C z pliku netdb.h . Posiada następujące metody dostępu do atrybutów:

  1. name - zwraca oficjalną nazwę host-a (skalar)
  2. aliases - zwraca listę adresów zastępczych(referencja do tablicy)
  3. length - zwraca wielkość adresu(zależy ona od typu adresu)(skalar)
  4. addrtype - zwraca typ adresu(skalar)
  5. addr_list - zwraca listę adresów(referencja do tablicy)
Po zaimportowaniu :FIELDS możemy odwoływać się do zmiennych pakietu za pomocą tych samych nazw, jakie mają metoddy po dodaniu "h_" na początku. Moduł posiada funkcję gethost, której argumentem może być adres IP lub nazwa hosta. Funkcja przekazuje argument liczbowy do gethostbyaddr z pomocą funkcji Socket::inet_aton, a napis do gethostbyname.

Przykład użycia

Poniższy program wypisuje dane o adresie www (IP lub nazwa). #!/usr/bin/perl use strict; use warnings; use Net::hostent; use Socket; my $host='univ.gda.pl'; my $obj=gethost($host); print "oficjalna nazwa: ".$obj->name."\n"; print "typ adresu: ".$obj->addrtype."\n"; print "wielkosc adresu: ".$obj->length."\n"; print "zastepcze nazwy:\n"; print "- $_\n" for @{$obj->aliases}; print "lista adresow: ",join ',',inet_ntoa(@{$obj->addr_list}),"\n"; Druga wersja programu (z wykorzystaniem "h_"): #!/usr/bin/perl use strict; use warnings; use Net::hostent ':FIELDS'; use Socket; my $host='univ.gda.pl'; my $obj=gethost($host); print "oficjalna nazwa: ".$h_name."\n"; print "typ adresu: ".$h_addrtype."\n"; print "wielkosc adresu: ".$h_length."\n"; print "zastepcze nazwy:\n"; print "- $_\n" for @h_aliases; print "lista adresow: ",join ',',inet_ntoa(@h_addr_list),"\n";

Dodatkowe informacje

Pozostałe informacje znajdują się w dokumentacji modułu, można je wyświetlić wpisując polecenie perldoc Net::hostent lub wejść na stronę www.

Autor opracowania

A.R.

Uniwersytet Gdański - Instytut Informatyki - Strona domowa - Perl - Wyklady
[c] Piotr Arłukowicz, materiały z tej strony udostępnione są na licencji GNU.