#include #include #include #include #include #include #include #include int obtain_mac(const char *ifname, unsigned char *mac, int len)
strcpy(ifreq.ifr_name, ifname);
if (ioctl(sk, siocgifhwaddr, &ifreq) < 0)
memcpy(mac, (unsigned char *)ifreq.ifr_hwaddr.sa_data, 6);
out:
if (sk >= 0)
close(sk);
return ret;
}int main(int argc, char **argv)
Linux 獲取網口詳細資訊
一般來說,研究 ifconfig.c 源 就可以達到目的了。但是linux已經提供了比較方便的獲取網口資訊的方式 philip catonbj cat sys class net em1 statistics rx bytes 3911191274 在 sys class net inte ce s...
linux 獲取本地mac位址 指定網絡卡
獲取本地mac std string getlocalmac memset ifr mac,0,sizeof ifr mac strncpy ifr mac.ifr name,eth0 sizeof ifr mac.ifr name 1 if ioctl sock mac,siocgifhwaddr...
socket 指定網口收發資料
在系統中,可能會有多片網口,工作在不同的網段,同時有不同的閘道器,socket需要繫結其中的乙個網絡卡,進行網路的通訊。設定socket指定為eth1進行收發網路包 define inte xename eth1 struct ifreq inte ce strncpy inte ce.ifr if...