当前位置: 技术问答>linux和unix
Linux C/C++客户端如何获得活动网卡的MAC地址?
来源: 互联网 发布时间:2017-04-03
本文导语: 对于获取本地MAC的功能,上网搜了一下好像都要指定网卡的名字 strcpy(ifr.ifr_name, szDevName); ioctl(s, SIOCGIFHWADDR, &ifr); 但是对于TCP客户端来说,它的socket当connect到服务器的时候肯定要通过一个网卡,所以怎么获得它conn...
对于获取本地MAC的功能,上网搜了一下好像都要指定网卡的名字
strcpy(ifr.ifr_name, szDevName);
ioctl(s, SIOCGIFHWADDR, &ifr);
但是对于TCP客户端来说,它的socket当connect到服务器的时候肯定要通过一个网卡,所以怎么获得它connect用的这个网卡的MAC呢?
strcpy(ifr.ifr_name, szDevName);
ioctl(s, SIOCGIFHWADDR, &ifr);
但是对于TCP客户端来说,它的socket当connect到服务器的时候肯定要通过一个网卡,所以怎么获得它connect用的这个网卡的MAC呢?
|
GETCONF可以获取所有网卡,查一下ioctl的相关选项。
|
socket没bind过特定网卡是谈不上出口IP的,完全是根据目标地址查路由表选择网卡出口的。
|
从哪个网卡出去由路由表决定,与socket无关
|
直接获取socket 的本身IP地址 在与网卡列表匹配不就行了