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

如何在Linux中以编程方式检测IP地址更改?

闻人景澄
2023-03-14
问题内容

有没有一种方法可以使用C ++在Linux中以编程方式检测本地计算机上的IP地址更改?


问题答案:

在C中,要使用当前IP,请使用:

    int s;
    struct ifreq ifr = {};

    s = socket(PF_INET, SOCK_DGRAM, 0);

    strncpy(ifr.ifr_name, "eth0", sizeof(ifr.ifr_name));

    if (ioctl(s, SIOCGIFADDR, &ifr) >= 0)
        printf("%s\n",
          inet_ntoa(((struct sockaddr_in *)&ifr.ifr_addr)->sin_addr));

将“ eth0”替换为您正在查看的接口。您现在要做的就是轮询更改。



 类似资料:
  • 问题内容: 我可以使用来获取堆末尾的地址,但是除了解析内容之外,有什么方法可以以编程方式获取堆头的地址吗? 问题答案: 我认为解析是Linux上找到堆段的唯一可靠方法。并且不要忘记某些分配器(包括我的SLES中的分配器)确实用于大块,因此内存不再是堆的一部分,可以位于任何随机位置。 否则,通常添加一个符号,该符号标记elf中所有段的结尾,并且该符号称为。例如: 它与elf 的末尾(传统上是elf

  • 问题内容: 我已经看到这个问题问过其他平台/语言-有什么想法吗?我想做类似的事情: 我希望能够在调试时切换键盘输入作为脚本的开始,这样我就可以花点时间启动chrome来监听我的节点检查器端口。 ***快速更新-我猜我实际上可以使用“ process.argv”来检测–debug是否传入。这是最佳/正确的方法吗? 问题答案: 在调试模式下运行时,NodeJS创建一个全局对象: 因此,可能的解决方案是

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

  • 问题内容: 我正在尝试制作一个可以更改PC /笔记本电脑IP地址和子网掩码的程序。我要输入的内容与Windows(ip / subnet,dns / alternate dns)上IPv4属性的接口相似。 我现在可以想到的是使用netsh命令更改Windows ip。我想做的是在Windows上设置/获取以太网设置 提前致谢 问题答案: 您可以在JAVA中更改注册表,这应该可以解决问题。这些应该有

  • 我能够从照片中捕捉颜色的RGB值,但我希望能够通过编程检测该颜色是红色、橙色、黄色、绿色、蓝色、紫色、棕褐色还是白色或黑色。 所以我需要指定返回的RGB范围,例如,红色的值。。。或者蓝色。。。等等我现在有类似的东西,但它不包括所有可能的RGB品种。 红色 R=255,克 R=255,G=0,B 橙色 R=255,克 R=240,G=255,B=0 等等 有人知道如何获取任何RGB值,并检测它是红色

  • 问题内容: 我有几个IP地址,例如: 如果要搜索所有3个ip地址,应该写哪种类型的正则表达式?例如,如果我这样做(我将能够搜索所有3个IP地址) 我现在可以做的事情是这样的:但是它似乎不能很好地工作。 谢谢。 问题答案: 您所拥有的正则表达式已经有几个问题: 首先,它包含点。在正则表达式中,点表示“匹配任何字符”,您只需要匹配实际的点。为此,您需要对其进行转义,因此请在圆点前面加上反斜杠。 其次,