linux用C语言读取网卡MAC地址
点击次数:34 次 发布日期:2008-11-21 22:55:46 作者:源代码网
|
源代码网推荐
想获取硬盘和CPU的序列号,看了hdparm源码,编译后运行,可是没能获取到硬盘的序列号,那就试试读网卡的MAC地址了,这是在网上找到的代码。
#include <stdio.h> #include <sys ioctl.h> #include <sys socket.h> #include <netinet in.h> #include <NET if.h> #include <string.h>
int main(int argc, char *argv[]) {
struct ifreq ifreq; int sock;
if(argc!=2) { printf("Usage : ethname
"); return 1; } if((sock=socket(AF_INET,SOCK_STREAM,0))<0) { perror("socket"); return 2; } strcpy(ifreq.ifr_name,argv[1]); if(ioctl(sock,SIOCGIFHWADDR,&ifreq)<0) { perror("ioctl"); return 3; } printf("%02x:%02x:%02x:%02x:%02x:%02x
", (unsigned char)ifreq.ifr_hwaddr.sa_data[0], (unsigned char)ifreq.ifr_hwaddr.sa_data[1], (unsigned char)ifreq.ifr_hwaddr.sa_data[2], (unsigned char)ifreq.ifr_hwaddr.sa_data[3], (unsigned char)ifreq.ifr_hwaddr.sa_data[4], (unsigned char)ifreq.ifr_hwaddr.sa_data[5]); return 0; }
源代码网供稿. |