Linux下獲取多網絡卡資訊

2021-06-21 22:22:41 字數 885 閱讀 5540

支援多網絡卡,主要是使用ioctl函式系統呼叫實現,通過指定裝置名實現指定功能.之前使用socket()函式,獲取檔案描述符.在此基礎可以很輕鬆的擴充套件,如獲取net mask,mac address等

#include stdio.h 

#include sys/types.h

#include sys/param.h

#include sys/ioctl.h

#include sys/socket.h

#include net/if.h

#include netinet/in.h

#include net/if_arp.h

#define maxinte***ces 16

int main(void)

ifc.ifc_len = sizeof(buf);

ifc.ifc_buf = (caddr_t) buf;

if (ioctl (fd, siocgifconf, (char *) &ifc) < 0)

int***ce = ifc.ifc_len / sizeof (struct ifreq);

printf("number of inte***ce is: %d\n",int***ce);

while (int***ce-- > 0)

if (buf[int***ce].ifr_flags & iff_promisc)

else

else

}if (!(ioctl (fd, siocgifaddr, (char *) &buf[int***ce])))

else

}close (fd);

return 0;

}

Linux下如何獲取網絡卡資訊

有時候,寫程式的時候需要獲取計算機的網路資訊,比如ip位址 電腦名稱 dns等資訊。ip位址和電腦名稱是比較容易獲取到的,而要想獲取位址掩碼 dns 閘道器等資訊就有些麻煩了。在windows下我們一般都是通過從登錄檔讀取這些資訊。在linux怎麼做呢?其實,linux下更加容易一些。因為我們可以拿...

linux 獲取網絡卡資訊

sar n dev 2 10 41 37 am iface rxpck s txpck s rxkb s txkb s rxcmp s txcmp s rxmcst s 10 41 39 am eth0 1.50 1648.00 0.15 117.54 0.00 0.00 1.00 10 41 39...

Linux下獲取所有可用網絡卡資訊

在linux 下開發網路程式時,經常會遇到需要取本地網路介面名 ip 廣播位址 子網掩碼或者mac位址等資訊的需求,最常見的辦法是配合巨集siocgifhwaddr siocgifaddr siocgifbrdaddr與siocgifnetmask作為引數呼叫函式 ioctl分別獲得mac位址 ip...