我正在编写需要在Windows和Linux上运行的c ++代码,我正在寻找一个函数调用,它将返回应用程序运行的框的ip地址。有没有这样的?
答案 0 :(得分:1)
如果您可以使用提升,请查看
How to get IP addresss of boost::asio::ip::tcp::socket?
答案 1 :(得分:1)
调用socket(),然后调用getsockname()。
答案 2 :(得分:1)
你可以做到,但这通常是一个坏主意。
ioctl SIOCGIFCONF如“man netdevice”中所述解释了这一点。
这个坏主意的原因是你可能无法得到你想要的东西。
机器可能有多个或多个IP地址,您不知道哪个是IP地址 上市。它可能在NAT网关(或几个)后面,在这种情况下,它们都不是 可能是公开的。
您无法使用该信息特别有用。无论你想要什么,它都是 这可能不是一个好主意。
答案 3 :(得分:0)
最好的想法是使用网络服务。连接到已知服务器,让它发回您用来联系它的IP。这将告诉您PC与外界通信时使用的IP地址(确定, IP地址)。
可能的例外以及它们无关紧要的原因:
答案 4 :(得分:0)
如果您知道应用程序运行的计算机的名称,只需使用gethostbyname()。