Linux下获取MAC地址
2013-07-02 14:22
555 查看
#include <sys/ioctl.h>
#include <netinet/in.h>
#include <net/if.h>
#include <string.h>
#include <stdio.h>
int get_mac(char* mac)
{
struct ifreq tmp;
int sock_mac;
char mac_addr[50] = {0};
sock_mac = socket(AF_INET, SOCK_STREAM, 0);
if( sock_mac == -1){
perror("create socket fail\n");
return -1;
}
memset(&tmp,0,sizeof(tmp));
strncpy(tmp.ifr_name,"eth0",sizeof(tmp.ifr_name)-1 );
if( (ioctl( sock_mac, SIOCGIFHWADDR, &tmp)) < 0 ){
printf("mac ioctl error\n");
return -1;
}
sprintf(mac_addr, "%02x:%02x:%02x:%02x:%02x:%02x",
(unsigned char)tmp.ifr_hwaddr.sa_data[0],
(unsigned char)tmp.ifr_hwaddr.sa_data[1],
(unsigned char)tmp.ifr_hwaddr.sa_data[2],
(unsigned char)tmp.ifr_hwaddr.sa_data[3],
(unsigned char)tmp.ifr_hwaddr.sa_data[4],
(unsigned char)tmp.ifr_hwaddr.sa_data[5]
);
close(sock_mac);
memcpy(mac,mac_addr,strlen(mac_addr));
return 0;
}
#include <netinet/in.h>
#include <net/if.h>
#include <string.h>
#include <stdio.h>
int get_mac(char* mac)
{
struct ifreq tmp;
int sock_mac;
char mac_addr[50] = {0};
sock_mac = socket(AF_INET, SOCK_STREAM, 0);
if( sock_mac == -1){
perror("create socket fail\n");
return -1;
}
memset(&tmp,0,sizeof(tmp));
strncpy(tmp.ifr_name,"eth0",sizeof(tmp.ifr_name)-1 );
if( (ioctl( sock_mac, SIOCGIFHWADDR, &tmp)) < 0 ){
printf("mac ioctl error\n");
return -1;
}
sprintf(mac_addr, "%02x:%02x:%02x:%02x:%02x:%02x",
(unsigned char)tmp.ifr_hwaddr.sa_data[0],
(unsigned char)tmp.ifr_hwaddr.sa_data[1],
(unsigned char)tmp.ifr_hwaddr.sa_data[2],
(unsigned char)tmp.ifr_hwaddr.sa_data[3],
(unsigned char)tmp.ifr_hwaddr.sa_data[4],
(unsigned char)tmp.ifr_hwaddr.sa_data[5]
);
close(sock_mac);
memcpy(mac,mac_addr,strlen(mac_addr));
return 0;
}
相关文章推荐
- 用纯Java代码根据IP获取windows和linux的MAC物理地址
- linux c 获取本地MAC地址
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- linux下java程序获取本机MAC地址
- 在linux下获取本机MAC地址的函数
- Linux下获取CPUID、硬盘序列号与MAC地址
- Linux系统下用C语言获取MAC地址
- java(jdk1.4、jdk1.6)获取mac地址的方法(winxp、win2003、win7、linux)
- php获取服务器端mac和客户端mac的地址支持WIN/LINUX
- Linux 下获取LAN中指定IP的网卡的MAC(物理地址)
- Java中获取windows、Linux和windows7的MAC地址
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip
- Linux 获取本机IP、MAC地址用法大全
- php获取服务器端mac和客户端mac的地址支持WIN/LINUX
- linux 下C实现获取网卡IP和MAC地址
- 获取 Linux 下 MAC 地址
- linux下获取多个网卡MAC地址
- Linux C 网络编程 - 获取本地 ip 地址,mac,通过域名获取对应的 ip
- Linux系统下用C语言获取MAC地址
- linux 设置网络API --- 开/关网卡、设置/获取Mac地址