我有一台小型网络上的计算机,所以我的 ip 是 192.168.2.100。
我正在尝试获取我的真实IP。我下载了 no-ip 客户端,但对于这么简单的事情来说,这似乎很麻烦。
我创建了这个 php 脚本,它获得了http://www.ip-adress.com/页面并检索了它给我的 ip。
有没有更简单的方法?使用 C、WSH 或其他东西。或者如果在 php 中有更简单的方法,请告诉我。
当我得到 ip 时,我会将它上传到我的 ftp 站点,这样我就可以看到工作中的 ip。
我有一台小型网络上的计算机,所以我的 ip 是 192.168.2.100。
我正在尝试获取我的真实IP。我下载了 no-ip 客户端,但对于这么简单的事情来说,这似乎很麻烦。
我创建了这个 php 脚本,它获得了http://www.ip-adress.com/页面并检索了它给我的 ip。
有没有更简单的方法?使用 C、WSH 或其他东西。或者如果在 php 中有更简单的方法,请告诉我。
当我得到 ip 时,我会将它上传到我的 ftp 站点,这样我就可以看到工作中的 ip。
不,真的没有更简单的方法。你的计算机真的不知道它背后的公共 IP——它和公共互联网之间可能有任意数量的 NAT 层。它只知道它在 192.168.2.100 接收消息,并通过 192.168.2.1 的网关发送传出消息。它不知道数据包到达网关后会发生什么。
请注意重新发明轮子,有一个标准协议 STUN(已经存在的实现),就是为了这个。另请参阅以编程方式发现公共 IP。
不完全符合您的要求,但仍然适用于您想要的。我在我的家用电脑上设置了一个 GMail 通知程序,然后转到帐户活动页面以查看哪个 IP 地址正在访问我的 Google 帐户。安全、简单且有效。
如果您想获得远程站点在处理流量时显示的最终 IP,那么唯一的方法是实际访问远程站点。在许多情况下,您的计算机可能不知道 IP 正在被代理或 NAT 服务器更改。
我总是curl http://whatismyip.org
在 NAT 后面获取我的公共 IP。
您也可以访问此页面以获取您的 IP
一些路由器可以通过 UPnP 或者更具体地说是IGD 协议告诉您他们的外部 IP 地址。如果你碰巧拥有一个支持 UPnP 的路由器,你可以试试这个。IStaticPortMapping::get_ExternalIPAddress听起来很有希望。
启用 SNMP 的设备也可以告诉您它们的 IP 地址。要请求的 OID 是IP-MIB::ipAdEntAddr。
你这样做的方式可能和任何方式一样好。
你说你有一个公共的 FTP 站点——你那里也有一个网站吗?您的另一个选择是让您的本地计算机访问该面向公众的站点上的 php 页面。该 php 页面可以验证您的身份,然后使用 $_SERVER['REMOTE_ADDR'] 记录您的外部 IP。
不幸的是,您的服务器很可能完全不知道它自己的外部地址是什么(因为它可能通过某些路由器/网关设置在上游)
你可以看看这个链接
http://ip-address.domaintools.com/myip.xml
它可能比您当前正在做的更容易解析。
我想不出你会如何从另一台机器的角度解析你的 IP 地址。这里有几个想法:
除了下一跳是哪一跳(通常是您的路由器的内部 ip),您的计算机没有任何关于它和互联网之间发生的 NAT 或路由的信息。它根本不知道内部地址在哪一跳被转换为哪个公共地址。
因此,没有任何语言可以调用的简单函数或方法。
唯一的两种方法是问别人。如何?: