Portál AbcLinuxu, 27. dubna 2024 06:44


Dotaz: přes C++ zobrazeni vsech sitovek

14.12.2005 09:47 Else
přes C++ zobrazeni vsech sitovek
Přečteno: 60×
Odpovědět | Admin
Ahoj pouzivam tento navod z rootu. http://www.root.cz/clanky/sokety-a-c-sitove-rozhrani/ Ale bohuzel se mi nedostalo ocekavaneho vysledku: zobrazeni veskerych sitovych rozhrani. Zobrazi se jen dve (eth0,lo). A dalsi eth1 ktera je down(bezdratova) tak se neobjevi. Zkousel jsem ifconfig a ten zobrazi s pomoci parametru -a vsechny. Pokusil sem se tedy nejak vylustit zpusob jakym je to udelany v programu ifconfig ale bohuzel je to na me prilis slozite. Muzete mi poradit? nejaky navod, popripade zpusob jak toho docilit? Predem dik.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

14.12.2005 11:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: přes C++ zobrazeni vsech sitovek
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkusil jsem tohle:
  #include <stdio.h>
  #include <net/if.h>

  int main()
  {
    struct if_nameindex* ifaces;
    struct if_nameindex* p;

    ifaces = if_nameindex();
    if (!ifaces) return 1;

    for (p=ifaces; p->if_name; p++)
      printf("%4d: %s\n", p->if_index, p->if_name);

    if_freenameindex(ifaces);

    return 0;
  }
a ukazuje mi to i rozhraní, která jsou down.

P.S.: příkaz ifconfig nepoužívejte, použijte raději 'ip link show'.

14.12.2005 11:23 Else
Rozbalit Rozbalit vše Re: přes C++ zobrazeni vsech sitovek
vyborne vidim vsechno, jak z toho prosim ziskam nejakou strukturu jako pres to ioctl abych tam mel ip, mac, mask atd..?
14.12.2005 11:35 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: přes C++ zobrazeni vsech sitovek
Zkuste se podívat do zdrojáků iproute2, řekl bych, že je to tam poměrně srozumitelné.
14.12.2005 11:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: přes C++ zobrazeni vsech sitovek
Případně, pokud se omezíte na systémy s jádrem 2.6, můžete použít obsah adresářů /sys/class/net/*
14.12.2005 13:54 Else
Rozbalit Rozbalit vše Re: přes C++ zobrazeni vsech sitovek
fajn, jsem si ty ziskany if_name hodil do struktury ifreq a volal na to funkci ioctl. :o] nejsem sikovnej?:]]

- nevite jak nejlepe rozlisit wireless od normani sitovky? napada me pres /proc/net, ale treba by byl nejakej spolehlivejsi zpusob.
14.12.2005 23:10 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: přes C++ zobrazeni vsech sitovek
Zkuste se porozhlédnout po /sys/class/net/xxx/device/, třeba tam bude něco relevantního. Přinejmenším je tam odkaz na jméno driveru, ale to by pak chtělo tabulku s informacemi, které drivery jsou wifi a které ne.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.