在linux下 擷取本機MAC地址的函數

來源:互聯網
上載者:User

//擷取本機MAC地址函數QString GetLocalMac()<br />{<br />int sock_mac;</p><p>struct ifreq ifr_mac;<br />char mac_addr[30]; </p><p>sock_mac = socket( AF_INET, SOCK_STREAM, 0 );<br />if( sock_mac == -1)<br />{<br />perror("create socket falise...mac/n");<br />return "";<br />}</p><p>memset(&ifr_mac,0,sizeof(ifr_mac));<br />strncpy(ifr_mac.ifr_name, "eth0", sizeof(ifr_mac.ifr_name)-1); </p><p>if( (ioctl( sock_mac, SIOCGIFHWADDR, &ifr_mac)) < 0)<br />{<br />printf("mac ioctl error/n");<br />return "";<br />}</p><p>sprintf(mac_addr,"%02x%02x%02x%02x%02x%02x",<br />(unsigned char)ifr_mac.ifr_hwaddr.sa_data[0],<br />(unsigned char)ifr_mac.ifr_hwaddr.sa_data[1],<br />(unsigned char)ifr_mac.ifr_hwaddr.sa_data[2],<br />(unsigned char)ifr_mac.ifr_hwaddr.sa_data[3],<br />(unsigned char)ifr_mac.ifr_hwaddr.sa_data[4],<br />(unsigned char)ifr_mac.ifr_hwaddr.sa_data[5]);</p><p>printf("local mac:%s /n",mac_addr); </p><p>close( sock_mac );<br />return QString( mac_addr );<br />}

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.