日期:2014-05-16  浏览次数:20712 次

Linux C/C++客户端如何获得活动网卡的MAC地址?
对于获取本地MAC的功能,上网搜了一下好像都要指定网卡的名字
strcpy(ifr.ifr_name, szDevName);
ioctl(s, SIOCGIFHWADDR, &ifr);
但是对于TCP客户端来说,它的socket当connect到服务器的时候肯定要通过一个网卡,所以怎么获得它connect用的这个网卡的MAC呢?
socket linux mac

------解决方案--------------------
GETCONF可以获取所有网卡,查一下ioctl的相关选项。
------解决方案--------------------
socket没bind过特定网卡是谈不上出口IP的,完全是根据目标地址查路由表选择网卡出口的。
------解决方案--------------------
从哪个网卡出去由路由表决定,与socket无关
------解决方案--------------------
直接获取socket 的本身IP地址 在与网卡列表匹配不就行了