int GetHostMac( UCHAR *NetMac, UCHAR ucEthNo)
{
struct ifreq ifreq;
int sock, i;
if(NetMac == NULL)
return -1;
if(ucEthNo == 0)
sprintf(ifreq.ifr_name, "eth0");
else if(ucEthNo == 1)
sprintf(ifreq.ifr_name, "eth1");
else
return -2;
if((sock=socket(AF_INET,SOCK_STREAM,0))<0)
return -3;
if(ioctl(sock,SIOCGIFHWADDR,&ifreq)<0)
return -4;
for(i = 0; i < 6; i++)
NetMac[i] = (UCHAR)ifreq.ifr_hwaddr.sa_data[i];
return 0;
}
本文介绍了一个C语言函数intGetHostMac,该函数用于获取指定网卡的MAC地址。通过使用socket和ioctl系统调用,结合ifreq结构体,可以从Linux系统中读取eth0或eth1等网卡接口的硬件地址。
2626

被折叠的 条评论
为什么被折叠?



