【问题标题】:How do I get my IP address in C on Linux? [duplicate]如何在 Linux 上的 C 中获取我的 IP 地址? [复制]
【发布时间】:2013-12-27 11:56:47
【问题描述】:

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

【问题讨论】:

标签: c linux networking


【解决方案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);

【讨论】:

  • uClibc 直到最近才包含 getifaddrs。你知道其他可以在嵌入式设备上使用的方法吗?
【解决方案2】:

对于 Linux:

要获取机器本地的所有接口,请使用getifaddrs()

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

【讨论】:

    猜你喜欢
    • 2020-10-07
    • 2011-10-28
    • 2011-05-07
    • 1970-01-01
    • 2011-11-27
    • 2015-02-18
    • 2011-01-18
    • 2014-03-22
    • 2010-09-17
    相关资源
    最近更新 更多