1 2 3 4 5
use Socket; use Sys::Hostname; my $host = hostname(); my $addr = inet_ntoa(scalar(gethostbyname($host))); print "Name= $host IP Adr=$addr <\n";
Name= meteor IP Adr=127.0.0.1 <
1 2 3 4 5
my @erg = `ifconfig`; foreach(@erg) { next if(m/:127/); print $_ if(m/inet Adresse:/); }
ifconfig | perl -nE '!/::1|127./ and /inet[^:]*:\s*(\S+)/ && say $1'
QuoteDer Rechnername wird wie erwartet richtig ermittelt, nur die IP-Adresse ist nicht die gewünschte. Hier würde ich gerne sehen was der Rechner via DHCP erhalten hat.
2014-12-29T11:57:15 rostiDa musst Du nur das richtige Interface befragen: Das IF welches nach draußen geht in das Netz, wo der DHCP-Server läuft.
1 2 3 4 5 6 7 8
use Sys::HostIP; use Data::Dumper; my $hostip = Sys::HostIP->new; #my $ips = $hostip->ips; my $interfaces = $hostip->interfaces; print Dumper $interfaces;
1 2 3 4 5 6 7 8 9 10 11 12
use 5.010; use Net::Domain qw(hostname hostfqdn hostdomain domainname); say "hostname: ", hostname(); say "hostfqdn: ", hostfqdn(); say "hostdomain: ", hostdomain(); say "domainname: ", domainname(); my $host = hostfqdn() . '.'; use Socket; my $addr = inet_ntoa(scalar(gethostbyname($host))); print "Name= $host IP Adr=$addr <\n";
1
2
3
4
5
hostname: meteor
hostfqdn: meteor
hostdomain:
domainname: meteor
Name= meteor. IP Adr=127.0.0.1 <
1 2 3 4 5
use Socket; use Net::Domain qw( hostfqdn ); my $host = hostfqdn(); my $addr = inet_ntoa(scalar(gethostbyname($host))); print "Name= $host IP Adr=$addr<\n";
2014-12-29T18:07:14 LinuxerUnd das soll - unter Betrachtung der Eingangsfrage - genau was bringen?
2014-12-30T10:03:24 roliWas war denn nun falsch konfiguriert bei dir? Das hilft anderen auch ;)wenn das System richtig konfiguriert ist, funktioniert auch der code aus meiner initialen Frage wie gewünscht.
127.0.0.1 meteor
QuoteDass 127.* auf das Loopback-Device zeigt, liegt an den eingestellten Netzwerkrouten im Betriebssystem.
2014-12-31T12:47:03 GwenDragonYo. Danke!
Habe ein OSI-Layer-8-Problem mit Brain 1.0 ;)