当前位置: 首页 > 面试题库 >

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

邓崇凛
2023-03-14
问题内容

我如何获得我的IP地址(最好是192.168.0.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);


 类似资料:
  • 问题内容: 如何从C代码获取Linux上接口的IPv4地址? 例如,我想获取分配给eth0的IP地址(如果有)。 问题答案: 尝试这个: 代码示例是从这里获取的。

  • 问题内容: 我正在尝试使用Java获取我的Internet IP地址,但是当我的IP地址为192.168.0.xxx时,我一直在获取本地地址(即:127.0.0.1) 我正在使用该行: 这似乎是获取IP地址的标准方法,但这不是我想要的。每个教程都说要使用此行,所以我有些困惑。 有人可以让我知道如何获取正确的IP地址吗? 我在连接到WiFi的设备上运行,但未使用任何电缆。我正在使用ifconfig

  • 问题内容: 通过使用strace和ifconfig,我发现可以通过以下方式设置IP地址: 但是我对这种解决方案不是很满意: 这样做的“正确”方法是什么? 问题答案: 没有魔术+2的IPv4的“正确”方式: 要使用IPv6,请将其强制转换为

  • 我正在寻找一个命令行解决方案,它将返回给我本地主机的主要(第一个)IP地址,而不是127.0.0.1 该解决方案至少应适用于Linux(Debian和RedHat)和OS X 10.7+ 我知道在这两个平台上都可用,但它的输出在这两个平台之间并不是那么一致。

  • 问题内容: 我想获取计算机的IP地址。我使用了下面的代码,但是返回了。 我想获取IP地址(例如),而不是回送地址。 问题答案: 您需要遍历所有网络接口 播放(取自util / helper.go)

  • 问题内容: 我不是指 127.0.0.1 而是其他计算机将用来访问该计算机的计算机,例如 192.168.1.6 问题答案: http://nodejs.org/api/os.html#os_os_networkinterfaces