undefined

获取本机的IP和MAC地址

#include <stdio.h>

#include <unistd.h>

#include <sys/socket.h>

#include <arpa/inet.h>

#include <string.h>

#include <sys/ioctl.h>

#include <net/if.h>

int main()

{

    int sock;

    int res;

    struct ifreq ifr;

    sock = socket(AF_INET, SOCK_STREAM, 0);

    strcpy(ifr.ifr_name, “eth0”);

    res = ioctl(sock, SIOCGIFADDR, &ifr);

    printf(“IP: %s\n”,inet_ntoa(((struct sockaddr_in*)&ifr.ifr_addr)->sin_addr));

    strcpy(ifr.ifr_name, “eth0”);

    res = ioctl(sock, SIOCGIFHWADDR, &ifr);

    int i;

    char mac[32];

    for(i = 0; i < 6; ++i)

    {

        sprintf(mac + 3*i, “%02x:”, (unsigned char)ifr.ifr_hwaddr.sa_data[i]);

    }

    printf(“MAC: %s\n”,mac);

    return 0;

}