获取我的 IP 地址

Posted

技术标签:

【中文标题】获取我的 IP 地址【英文标题】:Getting my ip address 【发布时间】:2010-10-29 09:00:01 【问题描述】:

我有一台小网络的电脑,所以我的ip是192.168.2.100。

我正在尝试获取我的真实 IP。我下载了无IP客户端,但对于这么简单的事情来说,这似乎很麻烦。

我创建了这个获取 http://www.ip-adress.com/ 页面的 php 脚本并检索了它给我的 ip。

有没有更简单的方法?使用 C、WSH 或其他东西。或者如果php有更简单的方法请告诉我。

当我得到 ip 后,我会将其上传到我的 ftp 站点,这样我就可以看到工作中的 ip。

【问题讨论】:

像您已经完成的那样抓取一些外部服务可能就足够了。它甚至可能是唯一的方法。您的路由器和/或互联网调制解调器将知道您的真实 IP。我不知道您将如何以编程方式与之交互。 whatismyip.org 提供了一个更简单的抓取页面。 您需要 IP 做什么?如果您想要静态地址,请使用 DynDNS 或类似地址。之后,您可以根据需要安装服务器(远程控制、HTTP/FTP/SSH...) 感谢 Albert,不知道那个网站。比 ip-address.com 容易得多 你的真实IP是192.168.2.100。您的问题应该是“我的 Internet IP 地址是什么?”。 【参考方案1】:

如果您想获得远程站点在处理您的流量时显示的最终 IP,那么唯一的方法是实际访问远程站点。在许多情况下,您的计算机可能不知道 IP 正在被代理或 NAT 服务器更改。

【讨论】:

【参考方案2】:

不,没有更简单的方法。你的计算机真的不知道它背后的公共 IP——在它和公共互联网之间可能有任意数量的 NAT 层。它只知道它在 192.168.2.100 接收消息,并通过 192.168.2.1 的网关发送传出消息。它不知道数据包到达网关后会发生什么。

【讨论】:

【参考方案3】:

你做这件事的方式可能和其他的一样好。

你说你有一个公共的 FTP 站点——你那里也有一个网站吗?您的另一个选择是让您的本地计算机访问该面向公众的站点上的 php 页面。该 php 页面可以验证它是您,然后使用 $_SERVER['REMOTE_ADDR'] 记录您的外部 IP。

【讨论】:

【参考方案4】:

不完全符合您的要求,但仍然适用于您想要的。我在我的家用电脑上设置了一个 GMail 通知程序,然后转到帐户活动页面以查看哪个 IP 地址正在访问我的 Google 帐户。安全、简单且有效。

【讨论】:

好主意 :) 简单易行。【参考方案5】:

一些路由器可以通过 UPnP 告诉您他们的外部 IP 地址,或者更具体地说,IGD protocol。如果你碰巧拥有一个支持 UPnP 的路由器,你可以试试这个。 IStaticPortMapping::get_ExternalIPAddress 听起来很有希望。

启用 SNMP 的设备也可以告诉您它们的 IP 地址。请求的 OID 是 IP-MIB::ipAdEntAddr。

【讨论】:

【参考方案6】:

不幸的是,您的服务器很可能完全不知道它自己的外部地址是什么(因为它可能通过某些路由器/网关设置在更上游的位置)

你可以看看这个链接

http://ip-address.domaintools.com/myip.xml

它可能比你现在做的更容易解析。

【讨论】:

【参考方案7】:

我想不出你会如何从另一台机器的角度解析你的 IP 地址。这里有几个想法:

自动加载 ip-adress.com 页面并解析它 看DynDNS

【讨论】:

【参考方案8】:

我总是使用curl http://whatismyip.org 在 NAT 之后获取我的公共 IP。

【讨论】:

【参考方案9】:

除了下一跳(通常是您的路由器的内部 IP)之外,您的计算机没有任何关于它与互联网之间发生的 NAT 或路由的信息。它根本不知道内部地址在哪一跳被转换为哪个公共地址。

因此,没有任何语言可以调用的简单函数或方法。

只有两种方法是问别人。怎么样?:

通过获取和解析路由器管理站点上的正确页面来询问您的 NAT 路由器(因为它自己会转换为公共 IP)。可以说是最可靠、最公平的。 通过获取和解析公共服务(例如 http://dynamic.zoneedit.com/checkip.html),询问外部主机对您的看法。 VB 脚本中的一个示例是here。

【讨论】:

【参考方案10】:

请注意重新发明***,有一个standard protocol, STUN(已经存在实现),就是为了这个。另见Discovering public IP programatically。

【讨论】:

【参考方案11】:

您也可以访问此页面获取您的IP

http://www.biranchi.com/ip.php

【讨论】:

【参考方案12】:

当我需要查看我的公共 IP 地址时,我喜欢这个网站:

http://www.whatismyip.global/

该网站会保存您的 IP 历史记录。对我来说很有用!

【讨论】:

以上是关于获取我的 IP 地址的主要内容,如果未能解决你的问题,请参考以下文章

我的本地连接现在“网络未分配网络地址 ”,点击修复“无法续订ip地址”

获取我的 IP 地址

Terraform 获取 api 网关的 ip 地址

如何获取本地计算机的 IP 地址?

C - 获取外部 IP 地址

如何在 C 中获取我的非环回网络 IP 地址?