您的位置:首页 > 运维架构 > Linux

在linux下获取本机MAC地址的函数

2013-03-07 15:09 239 查看
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 );
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: