支援多網絡卡,主要是使用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...