Netzwerk-Informationen von der Kommandozeile

Donnerstag, 08 Juli 2010
0.0/5 Bewertung (0 Stimmen)
Beschreibung

Ich bin auf der Suche nach einem bequemen Weg hilfreiche Netzwerk-Informationen über mein kabelgebundenes (en0) und kabelloses (en1) zu erhalten, ohne dafür die Systemeinstellungen / Netzwerk öffnen zu müssen. Also habe ich dieses Shell-Script geschrieben, das die Informationen extrahiert und formatiert.
Fügen Sie einfach den folgenden Kode in Ihren favorisierten Texteditor ein und sichern Sie ihn als Shell-Script (z.B. getnet.sh), vorzugsweise in Ihrem $PATH-Pfad. Nach dem Sichern, machen Sie das Script ausführbar chmod 0755 /path/to/getnet.sh.

 #! /bin/bash
QUERY0=”$(ipconfig getpacket en0)”;
QUERY1=”$(ipconfig getpacket en1)”;
MAC0=”$(ifconfig en0 | grep ether | awk ”{print $2}”)”;
MAC1=”$(ifconfig en1 | grep ether | awk ”{print $2}”)”;
echo $QUERY0 | grep ”BOOTREPLY” > /dev/null;
ET=$?;
echo $QUERY1 | grep ”BOOTREPLY” > /dev/null;
WI=$?;
echo ” ”;
if [ $ET -eq 0 ] || [ $WI -eq 0 ]
then
PUBLIC=”$(curl -s [url]http://checkip.dyndns.org[/url] | awk ”{print $6}” | awk ”BEGIN {FS = ”<”} {print $1}”)”;
echo ” Public IP: $PUBLIC”;
fi;
echo ” Hostname: $HOSTNAME”;
echo ” ”;
echo ”Wired Ethernet (en0)”;
echo ”-----------------------”;
if [ $ET -eq 0 ]
then
echo $QUERY0 | grep ”yiaddr = 0.0.0.0” > /dev/null;
AT=$?;
if [ $AT -eq 0 ]
then
IP=”$(echo $QUERY0 | sed ”s/.*ciaddr = ([[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}).*/1 (Static)/”)”;
else
IP=”$(echo $QUERY0 | sed ”s/.*yiaddr = ([[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}).*/1 (DHCP)/”)”;
fi;
SUBNET=”$(echo $QUERY0 | sed ”s/.*subnet_mask (ip): ([[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}).*/1/”)”;
ROUTER=”$(echo $QUERY0 | sed ”s/.*router (ip_mult): {([^}]*)}.*/1/”)”;
DNS=”$(echo $QUERY0 | sed ”s/.*domain_name_server (ip_mult): {([^}]*)}.*/1/”)”;
SEARCH=”$(echo $QUERY0 | sed ”s/.*domain_name (string): (.*) [[:alpha:]].*/1/”)”;
SPEED=”$(ifconfig en0 | grep media: | sed ”s/.*(//” | sed ”s/ .*//” | sed ”s/baseT/ MBit/s/”)”;
echo ” IP Address: $IP”;
echo ” Subnet Mask: $SUBNET”;
echo ” Router: $ROUTER”;
echo ” DNS Server: $DNS”;
echo ”Search Domains: $SEARCH”;
echo ” MAC Address: $MAC0”;
echo ” Speed: $SPEED”;
elif ! [ $ET -eq 0 ]
then
echo ” IP Address: inactive”;
echo ” MAC Address: $MAC0”;
fi;
echo ” ”;
echo ”Wireless Ethernet (en1)”;
echo ”-----------------------”;
if [ $WI -eq 0 ]
then
echo $QUERY1 | grep ”yiaddr = 0.0.0.0” > /dev/null;
AT=$?;
if [ $AT -eq 0 ]
then
IP=”$(echo $QUERY1 | sed ”s/.*ciaddr = ([[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}).*/1 (Static)/”)”;
else
IP=”$(echo $QUERY1 | sed ”s/.*yiaddr = ([[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}).*/1 (DHCP)/”)”;
fi;
SUBNET=”$(echo $QUERY1 | sed ”s/.*subnet_mask (ip): ([[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}.[[:digit:]]{1,3}).*/1/”)”;
ROUTER=”$(echo $QUERY1 | sed ”s/.*router (ip_mult): {([^}]*)}.*/1/”)”;
DNS=”$(echo $QUERY1 | sed ”s/.*domain_name_server (ip_mult): {([^}]*)}.*/1/”)”;
SEARCH=”$(echo $QUERY1 | sed ”s/.*domain_name (string): (.*) [[:alpha:]].*/1/”)”;
SPEED=”$(/System/Library/PrivateFrameworks/Apple80211.framework/Versions/A/Resources/airport -I | grep lastTxRate: | sed ”s/.*: //” | sed ”s/$/ MBit/s/”)”;
echo ” IP Address: $IP”;
echo ” Subnet Mask: $SUBNET”;
echo ” Router: $ROUTER”;
echo ” DNS Server: $DNS”;
echo ”Search Domains: $SEARCH”;
echo ” MAC Address: $MAC1”;
echo ” Speed: $SPEED”
elif ! [ $WI -eq 0 ]
then
echo ” IP Address: inactive”;
echo ” MAC Address: $MAC1”;
fi;
echo ” ”;

Hier folgt nun ein Beispiel der Ausgabe des Scripts:
Public IP: 123.456.78.90
Hostname: CWB-MacBook.local
Wired Ethernet (en0)
-----------------------
IP Address: inactive
MAC Address: aa:bb:cc:dd:ee:ff

Wireless Ethernet (en1)
-----------------------
IP Address: 192.168.0.196 (DHCP)
Subnet Mask: 255.255.255.0
Router: 192.168.0.1
DNS Server: 192.168.0.1
Search Domains: woh.rr.com
MAC Address: 00:11:22:33:44:55
Speed: 117 MBit/s

[crarko: Getestet und funktioniert wie beschrieben. Sie können dies auch mit dem system_profiler-Kommando erreichen, wenn Sie mit dem Werkzeug umgehen können.]

Spezifikationen

Hits

2742

© by macjaner.ch | Powered by GoeGG-ArT.ch