• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Netzwerk-Schnittstellenname auslesen

chakaa

Member
Hallo,

ich habe zwei Netzwerkadapter (Ethernet und WLAN). Die Zuordnung etho und eth1 ändert sich leider ständig, je nach Status des WLAN-Schalters beim Booten.

Ich würde nun gerne den Namen der aktuellen WLAN-Schnittstelle irgendwo auslesen, um ihn anderen Programmen zum Fressen zu geben.
Es gibt z.B. ein Programm iwconfig, das ähnlich wie ifconfig den Namen der WLAN-Schnittstelle anzeigt. Ausgabe:
Code:
lo        no wireless extensions.

eth0      no wireless extensions.

eth1      IEEE 802.11b  ESSID:"egal"  Nickname:"egal"
          Mode:Managed  Frequency:2.417 GHz  Access Point: egal   
          Bit Rate=54 Mb/s   Tx-Power:off   
          Retry:on   RTS thr:off   Fragment thr:off
          Encryption key:egal   Security mode:restricted
          Power Management:off
          Link Quality=100/100  Signal level=-37 dBm  
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

sit0      no wireless extensions.

Ich möchte nun das eth1 auslesen. Leider kenne ich mich mit bash-Scripts bzw. sed, cut o.ä. nicht ausreichend aus, um das "aus dem Ärmel schütteln" zu können :(

Achtung: das Ergebnis steht nicht immer in der 5. Zeile, sondern in der ersten, in der nicht no wireless extensions. steht.
Vielleicht kann mir jemand einen Tip geben, wie die entsprechende Zeile auszusehen hat, die den String zerlegt und untersucht.

Pseudocode:
Code:
if (substr(line, 11, 22) != "no wireless extensions") {
  write(trim(substr(line, 1, 10)));
}

Über einen Tip würde ich mich freuen :)
 
A

Anonymous

Gast
Hi,
iwconfig|grep "eth1"
liefert zB
eth1 IEEE 802.11b ESSID:"egal" Nickname:"egal"
iwconfig|grep "eth1"|awk '{print $2}'
liefert zB
IEEE
iwconfig|grep "eth1"|cut -f2 -d":"
liefert zB
"egal" Nickname
usw....
Hoffe das hilft Dir weiter ?1

Mƒg ®êïñï
 
OP
C

chakaa

Member
reini123 schrieb:
Hoffe das hilft Dir weiter ?1

fast :wink:

Mir geht es ja eigentlich darum, festzustellen, ob nun eth0 oder eth1 dem WLAN zugeordnet ist..
Hey, ich habe gerade festgestellt, dass iwconfig die nichtzugeordneten Schnittstellen über STDERR ausgibt.

Wenn ich also
Code:
iwconfig 2>/dev/null | cut -c1-10 | grep e
mache, bekomme ich das richtige Ergebnis.

Öhm - ist das mit dem grep eigentlich die eleganteste Methode, die Leerzeilen von cut rauszufiltern? ;)
 

TeXpert

Guru
warum so kompliziert?

iwconfig schreibt die Infos über Interfaces _ohne_ wireless-Extension auf stderr und die mit auf stdout, d.h. ein

Code:
iwconfig 2>/dev/null | head -n1| cut -f 1 -d " "

reicht völlig, der 1. Teil schreibt nur die wireless-Karten raus, das head schränkt auf die 1. Zeile ein und mit dem cut schmeissen wir alles was nicht Interfacename ist weg.


EDIT: na, da war ich etwas langsam :)
 
OP
C

chakaa

Member
achso, und wie bekomme ich die Leerzeichen am Ende weg? ;)

Code:
echo \"`iwconfig 2>/dev/null | cut -c1-10 | grep e`\"

ich bekomme ja evtl.. auch Strings wie "wlan0" oder so.. oops, da würde grep e ja eh versagen..
Aber es gibt ja bestimmt was besseres, um die Leerzeilen von cut zu unterdrücken?

{später}
gefunden :)
Code:
echo \"`iwconfig 2>/dev/null | cut -c1-10 | head -n 1`\"

Oha, jetzt sehe ich die Antwort von TeXpert.
Danke :)
 
Oben