请问在linux下如何获得本机mac地址 不使用socket这个函数
请问在linux下如何获得mac地址 不使用socket这个函数
网上找了一些如下:
int main(void)
{
int sockfd;
struct ifreq struReq;
sockfd = socket(PF_INET,SOCK_STREAM,0);
memset(&struReq,0,sizeof(struReq));
strncpy(struReq.ifr_name, "eth0", sizeof(struReq.ifr_name));
ioctl(sockfd,SIOCGIFHWADDR,&struReq);
fprintf(stderr, "%d-%s\n", __LINE__, strerror(errno));
printf("%s\n", ether_ntoa(struReq.ifr_hwaddr.sa_data));
close(sockfd);
}
请问还有别的方法吗?不想使用socket函数,有没有linux的系统api来获取啊?
网上找了一些如下:
int main(void)
{
int sockfd;
struct ifreq struReq;
sockfd = socket(PF_INET,SOCK_STREAM,0);
memset(&struReq,0,sizeof(struReq));
strncpy(struReq.ifr_name, "eth0", sizeof(struReq.ifr_name));
ioctl(sockfd,SIOCGIFHWADDR,&struReq);
fprintf(stderr, "%d-%s\n", __LINE__, strerror(errno));
printf("%s\n", ether_ntoa(struReq.ifr_hwaddr.sa_data));
close(sockfd);
}
请问还有别的方法吗?不想使用socket函数,有没有linux的系统api来获取啊?
...全文
相关推荐
python获取本机mac地址和ip地址的方法
- 在使用网络相关的命令时,网络环境配置不同可能会导致`ifconfig`命令不存在,此时可能需要更换为其他命令,比如在Mac OS中,使用`system_profiler SPM NetworkInterfaces
Linux下Sniffer程序的实现
**绑定Socket**:使用`bind()`函数绑定到特定的网络接口,通常使用`htonl(IFINDEX_<interface>)`指定接口索引。4.
熟悉网络命令socket编程.doc
**创建Socket**:使用`socket()`函数创建一个Socket句柄,指定协议类型(如TCP/IP)和地址族(如AF_INET)。2.
接收arp请求并发送回应的实例
此外,还可以利用`ioctl`函数获取本机的MAC地址。需要注意的是,直接操作原始套接字需要相应的权限,通常需要root权限才能执行。
linux_sock_raw原始套接字编程
如果想要接收从本机发送的数据帧,需要设置网卡为混杂模式(promiscuous mode)。使用`htons()`函数是因为协议类型通常以网络字节顺序表示。


