一尘不染

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

linux

我如何获得我的IP地址(最好是192.168.0.1格式)?


阅读 321

收藏
2020-06-07

共1个答案

一尘不染

此示例代码列出了计算机上存在的所有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);
2020-06-07