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

Jel*_*lly 5 c linux networking

我怎么能得到我的IP地址(最好是192.168.0.1格式)?

brm*_*brm 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);
Run Code Online (Sandbox Code Playgroud)


alk*_*alk 7

对于Linux:

获取机器本地的所有接口getifaddrs().

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