【发布时间】:2012-10-28 05:34:35
【问题描述】:
远程计算机有两个地址:LAN 和 VPN
我尝试通过以下代码获取局域网 IP地址:
hostent *host = gethostbyname(hostname);
if (host) strcpy(ip, inet_ntoa(*((struct in_addr *)host->h_addr)));
所以,有时它返回 LAN,但有时返回 VPN。我知道 h_addr_list 字段中有很多地址,但是我怎么知道哪个地址是本地的呢?
我尝试使用 GetAdaptersInfo(),它有确定本地 ip 的字段,但只返回我计算机的 ip 地址。我不知道如何获取远程计算机的 ip。
谁给我一些建议,拜托!
【问题讨论】:
-
您的本地主机很可能无论如何都无法区分它们,但您可以尝试将来自远程的 ips 列表与相应连接的本地网络掩码(例如 eth0)进行匹配。
-
谢谢!我想过,但这只是猜测。因此,将其保留为备用计划。我绝对想通过代码得到那个ip。
标签: c network-programming ip