Sys::Hostname oder Net::Domain - Hostname ermitteln

Veröffentlicht von Thomas Fahle am (Permalink)

Der Hostname ist die eindeutige Bezeichnung eines Rechners in einem Netzwerk. Meist wird ein Fully Qualified Domain Name (FQDN) als Hostname verwendet. Bei Rechnern in einem LAN wird allerdings manchmal auch der Domain-Teil (hostdomain) weggelassen und nur der lokale Part (hostname) verwendet.

Die Ermittlung des Hostnamens ist nicht immer einfach, daher verwenden die beiden nachfolgend vorgestellen Module intern zahlreiche Methoden, um den Hostnamen herauszufinden.

 

Sys::Hostname

Sys::Hostname von David Sundstrom, seit Perl 5.6 Bestandteil der Standard-Distribution, stellt eine Funktion bereit: hostname().

#!/usr/bin/perl
use strict;
use warnings;

use Sys::Hostname;

print hostname(), "\n";

Das Programm liefert z.B. folgende Ausgabe:

server.example.net

oder auch einfach

server

 

Net::Domain

Net::Domain, seit Perl 5.73 Bestandteil der Standard-Distribution, von Graham Barr verwendet intern deutlich mehr Methoden als Sys::Hostname, um den FQDN des aktuellen Hosts zu ermittlen. Weiterhin werden auch Funktionen bereitgestellt, um den lokalen bzw. Domain-Teil zu ermitteln.

  • hostfqdn (): liefert den FQDN des aktuellen Hosts
  • domainname (): Ein Alias für hostfqdn
  • hostname (): liefert den lokalen Teil des FQDN
  • hostdomain (): liefert den Domain-Teil des FQDN
#!/usr/bin/perl
use strict;
use warnings;

use Net::Domain qw(hostname hostfqdn hostdomain);

print "Host FQDN:  ", hostfqdn , "\n";
print "Hostname:   ", hostname , "\n";
print "Hostdomain: ", hostdomain , "\n";

Das Programm liefert z.B. folgende Ausgabe:

Host FQDN:  server.example.net
Hostname:   server
Hostdomain: example.net

 

Siehe auch

 

Weitere Posts