Mittwoch, 14. November 2012

ipconfig Script für Linux


Ein IPCONFIG Script für Linux

Um alle Informationen die das gleichnamige Tool bereithält auch für mein Lieblings OS auszugeben muss man doch einiges zusammensuchen.
Als da wären:

  • IP Adresse / Subnetzmask
  • Default Gateway
  • DNS Server 
  • DNS Domaine
  • Rechnername (FQDN)
  • MAC-ID der Interfaces
Die Ausgabe sieht so aus


Netzwerk-Konfiguration
----------------------

Rechnername......... recner.domain.de
DNS-Domaine......... 

DNS-Server.......... 192.168.0.2

Default Gateway..... 192.168.0.1

Netzwerk-Interface.. eth0
    MAC-ID.......... 13:1E:AS:CD:FA:A9
    IP-Adresse...... 192.168.0.63
    SubnetMask...... 255.255.255.0

Netzwerk-Interface.. lo
    MAC-ID.......... 
    IP-Adresse...... 127.0.0.1
    SubnetMask...... 255.0.0.0

Netzwerk-Interface.. wlan0
    MAC-ID.......... 13:1E:AS:CD:FA:A9
    IP-Adresse...... 192.168.220.63
    SubnetMask...... 255.255.255.248


Das Script habe ich schon vor vielen Jahren geschrieben und wollte es endlich mal dokumentieren und der Öffentlichkeit zugänglich machen. Es müssen die Dateien: "/etc/resolv.conf" und die Ausgaben von "ip route" und "ifconfig -a" ausgewertet werden

Script-Code:

#! /bin/sh
clear
echo " "
echo "Netzwerk-Konfiguration"
echo "----------------------"
echo " "
echo " "
echo "Rechnername......... "`hostname`

test -f /etc/resolv.conf && DOMAIN=`cat /etc/resolv.conf | grep domain | grep -v '#'`
echo "DNS-Domaine......... "${DOMAIN#* }
echo " "

if test -f /etc/resolv.conf; then
    Text="DNS-Server.......... "
    cat /etc/resolv.conf | grep nameserver | grep -v '#' | while read name NAMESERVER ; do
        echo $Text$NAMESERVER
        Text=".................... "
    done
echo " "
fi

LinkName="Link"
LANG=""
export LANG=""

/sbin/ip route  | while read AAA BBB gateway DDD EEE ; do
        if test "$AAA" = "default" ; then                   
            echo "Default Gateway..... "${gateway}
            TREFFER="true";
        fi
            
done 
echo " "

#if [ "$TREFFER" != "true" ]; then
#       echo "Default Gateway....."
#fi

/sbin/ifconfig -a  | while read ifname Name flags MACname MAC ; do
        if test "$Name" = "$LinkName" ; then                
            read inet ipaddr broadcast mask
            if test "${inet}" != "inet" ; then
                ipaddr="";
                mask="";
                broadcast="";
            fi
            echo "Netzwerk-Interface.. "${ifname}
            echo "    MAC-ID.......... "$MAC
            echo "    IP-Adresse...... "${ipaddr#*:}
            if [ "${mask}" = "" ]; then
                mask=$broadcast         
            fi
            echo "    SubnetMask...... "${mask#*:}
            mask=""
            broadcast=""
            echo " "
        fi
            
done 

Natürlich sollte inzwischen der Befehl ifconfig durch "ip addr" ersetzt werden.