Linux下获取本机IP地址的代码

 

Linux下获取本机IP地址的代码,返回值即为互联网标准点分格式的字符串。

#define ETH_NAME  "eth0"



//获得本机IP地址

char* GetLocalAddress()

{

        int sock;

        struct sockaddr_in sin;

        struct ifreq ifr;

       

        sock = socket(AF_INET, SOCK_DGRAM, 0);

        if (sock == -1)

        {

                perror("socket");

                return NULL;               

        }

       

        strncpy(ifr.ifr_name, ETH_NAME, IFNAMSIZ);

        ifr.ifr_name[IFNAMSIZ - 1] = 0;

       

        if (ioctl(sock, SIOCGIFADDR, &ifr) < 0)

        {

                perror("ioctl");

                return NULL;

        }



        memcpy(&sin, &ifr.ifr_addr, sizeof(sin));

    return inet_ntoa(sin.sin_addr);

}

 

你可能感兴趣的:(linux)