如何在Linux上以C语言获取我的IP地址?

时间:2013-12-27 11:56:47

标签: c linux networking

我怎样才能获得我的IP地址(最好是192.168.0.1格式)?

2 个答案:

答案 0 :(得分:9)

此示例代码列出了计算机上存在的所有IPv4网络接口的接口名称(例如loeth0)以及当前分配的IP地址:

getifaddrs(&addrs);
tmp = addrs;

while (tmp) 
{
    if (tmp->ifa_addr && tmp->ifa_addr->sa_family == AF_INET)
    {
        struct sockaddr_in *pAddr = (struct sockaddr_in *)tmp->ifa_addr;
        printf("%s: %s\n", tmp->ifa_name, inet_ntoa(pAddr->sin_addr));
    }

    tmp = tmp->ifa_next;
}

freeifaddrs(addrs);

答案 1 :(得分:7)

对于Linux:

要使本机的所有接口都使用getifaddrs()

上面链接的页面末尾有一个例子。