Re: [Fedora] General Linux Networking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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





[Index of Archives]     [Current Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]     [Fedora Docs]

  Powered by Linux