在 Linux 上的 C 中,是否有一种规范的方法来检查 IP 地址是否对应于本地主机?
也就是说,我正在寻找一个函数 is_localhost
,如果我的计算机有一个外部 IP 为“1.2.3.4”,那么在任何一个上调用 is_localhost
“localhost”、“127.0.0.1”或“1.2.3.4”应返回 true,任何其他 IP 都将返回 false。
附带说明一下,欺骗此信息有多难 - 以这种方式检查主机是否为 localhost 是否可以保证请求实际上来自这台计算机?
对于上下文,我正在为服务器编写一个管理界面。我想制作只读管理位,如查看连接列表,可通过网络使用,但对于任何危险的事情,如手动终止连接,您应该通过在服务器本身上运行脚本来完成。
谢谢!
最佳答案
我认为您可能试图以错误的方式解决您的问题 - 如果您想通过检查它是否是本地主机来限制对您的远程可访问应用程序的访问,那么检查 IP 地址将是一个非常糟糕的方法做吧。一台 PC 可以有任意数量的易于配置的网络接口(interface),这些接口(interface)具有您自己选择的 IP 地址。所以解决起来会很容易。
您可能需要考虑添加一些基本身份验证,或者只是不允许远程运行某些功能。有很多方法可以实现这一点,但我认为问题的范围在这里结束——不要依赖于检查 IP 地址。 :)
关于c - 如何检查IP地址是否对应于C中的localhost,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20109009/