博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
根据网卡获取MAC地址
阅读量:5995 次
发布时间:2019-06-20

本文共 1142 字,大约阅读时间需要 3 分钟。

The mac address or the hardware address or the ethernet address of an interface is a 48 bit number that looks like this : 00:1c:c0:f8:79:ee

The mac address of an interface can be found given its name. The function to use is ioctl.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <stdio.h>    //printf
#include <string.h>   //strncpy
#include <sys/socket.h>
#include <sys/ioctl.h>
#include <net/if.h>   //ifreq
#include <unistd.h>   //close
 
int 
main()
{
    
int 
fd;
    
struct 
ifreq ifr;
    
char 
*iface = 
"eth0"
;
    
unsigned 
char 
*mac;
     
    
fd = socket(AF_INET, SOCK_DGRAM, 0);
 
    
ifr.ifr_addr.sa_family = AF_INET;
    
strncpy
(ifr.ifr_name , iface , IFNAMSIZ-1);
 
    
ioctl(fd, SIOCGIFHWADDR, &ifr);
 
    
close(fd);
     
    
mac = (unsigned 
char 
*)ifr.ifr_hwaddr.sa_data;
     
    
//display mac address
    
printf
(
"Mac : %.2x:%.2x:%.2x:%.2x:%.2x:%.2x\n" 
, mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
 
    
return 
0;
}

  

Output

1 $ gcc interface_mac.c && ./a.out
2 Mac : 00:1c:c0:f8:79:ee
==============================================================================
本文转自被遗忘的博客园博客,原文链接:http://www.cnblogs.com/rollenholt/archive/2012/07/11/2586151.html,如需转载请自行联系原作者
你可能感兴趣的文章
微信平台BAE
查看>>
Java程序编译和运行的过程
查看>>
数学图形之牟合方盖
查看>>
Objective-C-类(static)方法、实例方法、overwrite(覆写)、属性(property)复习...
查看>>
PHP多次调用Mysql存储过程报错解决办法
查看>>
mysql的二级索引
查看>>
Cobar是提供关系型数据库(MySQL)分布式服务的中间件
查看>>
Oracle当前用户SQL
查看>>
JavaScript学习笔记之下拉选择框的操作
查看>>
ProgressDialog使用总结
查看>>
安装完操作系统后,必备开发软件安装
查看>>
网络爬虫基本原理(一)
查看>>
让Win8自动登录免输入密码的小技巧
查看>>
RSA3:预提取数据
查看>>
MinGW 介绍
查看>>
注册域名到搜索引擎
查看>>
Eclipse中如何安装和使用GrepCode插件 (转)
查看>>
神经网络和机器学习、强人工智能
查看>>
JavaScript内部原理实践——真的懂JavaScript吗?(转)
查看>>
【DeepLearning】Exercise:Softmax Regression
查看>>