Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50564
  • 博文数量: 21
  • 博客积分: 970
  • 博客等级: 准尉
  • 技术积分: 250
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-03 18:43
文章分类
文章存档

2010年(21)

我的朋友

分类: LINUX

2010-03-08 19:46:28

QString GetLocalMac()
{
    int sock_mac;
    
    struct ifreq ifr_mac;
    char mac_addr[30];  
   
    sock_mac = socket( AF_INET, SOCK_STREAM, 0 );
    if( sock_mac == -1)
    {
        perror("create socket falise...mac\n");
        return "";
    }
   
    memset(&ifr_mac,0,sizeof(ifr_mac));  
    strncpy(ifr_mac.ifr_name, "eth0", sizeof(ifr_mac.ifr_name)-1);  

    if( (ioctl( sock_mac, SIOCGIFHWADDR, &ifr_mac)) < 0)
    {
        printf("mac ioctl error\n");
        return "";
    }
   
    sprintf(mac_addr,"%02x%02x%02x%02x%02x%02x",
            (unsigned char)ifr_mac.ifr_hwaddr.sa_data[0],
            (unsigned char)ifr_mac.ifr_hwaddr.sa_data[1],
            (unsigned char)ifr_mac.ifr_hwaddr.sa_data[2],
            (unsigned char)ifr_mac.ifr_hwaddr.sa_data[3],
            (unsigned char)ifr_mac.ifr_hwaddr.sa_data[4],
            (unsigned char)ifr_mac.ifr_hwaddr.sa_data[5]);

    printf("local mac:%s \n",mac_addr);   
   
    close( sock_mac );
    return QString( mac_addr );
}
阅读(1041) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~