Zjisteni dostupnych WiFi karet v Linuxu

V jednom skriptu jsem potreboval zjistit vsechny dostupne WiFi karty v pocitaci s Ubuntu 14.04. lspci se ukazalo nepouzitelne, musel jsem pracovat primo s /sys.

Lspci na mem notebooku vratilo nasledujici vypis:

Jak je videt, notebook ma dve sitove karty. Logicky je videt, ze AR9285 Wireless je WiFi. Ale na pritomnost slova wireless a v druhem radku ethernet se neda spolehat.

V Linuxu maji vsechny sitove karty „svuj adresar“ ve virtualnim souborovem systemu /sys/class/net/.

Jak ale poznat bezdrat? Jednoduse. Pokud vlezeme do jednotlivych podadresaru a nenajdeme adresar wireless, neni to wifi:

Zbyva to jen obalit do skriptu:

For cyklem se projdou vsechny polozky v adresari /sys/class/net. U kazde polozky se prida /wireless a testuje se, jestli je to adresar (-d) a zaroven jestli neexistuje monitor zarizeni.

Mohlo by se totiz stat, ze existuje sitovka wlan0 a k ni mon.wlan0. Mon.wlan0 nas vubec nezajima. Proto porovname retezec obsahujici aktualni cestu s vyrazem obsahujicim mon. Hvezdicka musi byt az za uvozovkami!

Nakonec pomoci basename zahodime priponu a cestu.

A takhle vypada spusteni skriptu:

Uvedeny zpusob je jenom jednou z mnoha cest, jak dosahnout vysledku 🙂

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.