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";
}