这个问题与之前问的几乎相同, 我如何获取本地计算机的 IP 地址? -问题。但是我需要找到 Linux Machine 的 IP 地址。
所以:我如何 - 在 C++ 中以编程方式 - 检测我的应用程序正在运行的 linux 服务器的 IP 地址。服务器将至少有两个 IP 地址,我需要一个特定的 IP 地址(给定网络中的一个(公共网络))。
我确信有一个简单的功能可以做到这一点 - 但在哪里?
为了让事情更清楚一点:
- 服务器显然会有“localhost”:127.0.0.1
- 服务器将有一个内部(管理)IP 地址:172.16.xx
- 服务器将有一个外部(公共)IP 地址:80.190.xx
我需要找到外部 IP 地址来将我的应用程序绑定到它。显然我也可以绑定到 INADDR_ANY (实际上这就是我现在所做的)。不过,我更愿意检测公共地址。
原文由 BlaM 发布,翻译遵循 CC BY-SA 4.0 许可协议
您如何仅使用
stdio.h
标头? (不涉及网络标头)这是完整的 C++ 代码:
(这是本地 IP;例如,如果您使用家庭调制解调器)
奖励:您也可以通过它的 NDK C++ 编译器为 Android 交叉编译它
只是说:我有一个运行它的 VPS,它获取 外部 IP