Linux C语言获取设备MAC地址

在Linux平台下编译运行如下代码即可获取到设备的MAC地址:

eg:编译命令  gcc -o example example.c

     执行命令  ./example

#include <stdio.h>
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <netinet/if_ether.h>
#include <net/if.h>
#include <linux/sockios.h>
void main()
{
char *device="eth0"; //teh0是网卡设备名
unsigned char macaddr[ETH_ALEN]; //ETH_ALEN(6)是MAC地址长度
//AF_INET = 1;
int i,s;
s = socket(AF_INET,SOCK_DGRAM,0); //建立套接口
struct ifreq req;
int err,rc;
rc = strcpy(req.ifr_name,device); //将设备名作为输入参数传入
err=ioctl(s,SIOCGIFHWADDR,&req); //执行取MAC地址操作
close(s);
if( err != -1 )
{
 memcpy(macaddr,req.ifr_hwaddr.sa_data,ETH_ALEN); //取输出的MAC地址
   for(i=0;i<ETH_ALEN;i++)
   printf("%2x:",macaddr[i]);
}
printf("\r\n");
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值