At 01:29 08.01.2004, Bevan C. Bennett wrote:
Bevan C. Bennett wrote:
>
It would be relatively trivial to create a small script which gathers
that data, reformats it, and prints a Windows-like 'ipconfig' style summary.
Just to prove that this is, in fact, possible... the following makes a
passable imitation, for those interested in such things...
#!/usr/bin/perl
#
# 'ipconfig' like output - written as an experiment
# Jan 07, 2003 by Bevan Bennett (bevan@xxxxxxxxxxxxxxxx)
#
open(IFINFO,'ifconfig|') || die "couldn't run ifconfig: $!\n";
%interfaces = ();
$current = "";
$hostname = $ENV{"HOSTNAME"};
while (<IFINFO>) {
/^(\S+)\s+Link encap:Ethernet\s+HWaddr\s+(\S+)/ && do {
$interfaces{$1}{"hwaddr"} = $2;
$current = $1;
next;
};
/^lo/ && do {
$current = "";
next;
};
next if (!$current);
/inet addr:([\d\.]+)/ && do {$interfaces{$current}{"ipaddr"} = $1;};
/Mask:([\d\.]+)/ && do {$interfaces{$current}{"mask"} = $1;};
}
close(IFINFO);
open (DNSINFO,'/etc/resolv.conf') || die "Can't open /etc/resolv.conf: $!\n";
while (<DNSINFO>) {
/^domain (\S+)/ && do { $dnsdomain = $1; };
/^search (.+)/ && do { @dnssearch = split / /,$1; };
/^nameserver (\S+)/ && do { push @dnssrv,$1; };
}
close (DNSINFO);
open (ROUTEINFO,'netstat -rn|') || die "Can't run netstat: $!\n";
while (<ROUTEINFO>) {
/0\.0\.0\.0\s+(\S+)\s+\S+\s+UG\s+\d+\s+\d+\s+\d+\s+(\S+)/ && do {
$gateway = $1;
$gateint = $2;
};
}
close (ROUTEINFO);
print "Fedora Core IP Configuration\n\n";
print " Host Name . . . . . . . . . . . . . : " . $hostname . "\n";
print " Primary DNS Suffix. . . . . . . . . : " . $dnsdomain . "\n";
print " DNS Suffix Search List. . . . . . . : " . shift(@dnssearch)
. "\n";
while (@dnssearch) {
print " " . shift(@dnssearch)
. "\n";
}
print " DNS Servers . . . . . . . . . . . . : " . shift(@dnssrv) . "\n";
while (@dnssrv) {
print " " . shift(@dnssrv) . "\n";
}
print " Default Gateway . . . . . . . . . . : " . $gateway . " ("
. $gateint . ")\n";
print "\n";
foreach $if (keys(%interfaces)) {
print "Ethernet adapter Local Area Connection $if:\n\n";
print " Physical Address. . . . . . . . . . : " .
$interfaces{$if}{"hwaddr"} . "\n";
print " IP Address. . . . . . . . . . . . . : " .
$interfaces{$if}{"ipaddr"} . "\n";
print " Subnet Mask . . . . . . . . . . . . : " .
$interfaces{$if}{"mask"} . "\n";
print "\n";
}
Thanks everyone :-)
I have received many good inputs including this brilliant script.
Øyvind
--
fedora-list mailing list
fedora-list@xxxxxxxxxx
To unsubscribe: http://www.redhat.com/mailman/listinfo/fedora-list