Linux 获取本机MAC,IP地址的方法

来源:互联网 发布:cloudstack centos 编辑:程序博客网 时间:2024/05/16 21:27
#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <arpa/inet.h>#include <net/if.h>#include <string.h>#include <stdio.h>  void GetMac(void *data){    int i;    char * device = "eth0";    struct ifreq ifreq;    int sock;    char mac[32];       if((sock=socket(AF_INET,SOCK_STREAM,0))<0)    {        perror("socket");        return;    }    strcpy(ifreq.ifr_name,device);    if(ioctl(sock,SIOCGIFHWADDR,&ifreq)<0)    {        perror("ioctl");        return;    }     for (i=0; i<6; i++)    {        sprintf(mac+3*i, "x:", (unsigned char)ifreq.ifr_hwaddr.sa_data[i]);    }    sprintf(mac+17,"\0");    printf("MAC: %s \n", mac);     strcpy(data,mac);    return ;}

0 0