2009-05-27 199 views
8

我在一个小型网络上有一台计算机,所以我的IP为192.168.2.100。获取我的IP地址

我想让我的真实ip。我下载了no-ip客户端,但对于这样一个简单的事情来说,这看起来很麻烦。

我创建了这个PHP脚本得到了http://www.ip-adress.com/页面,并检索了它给我的IP。

有没有更简单的方法?无论是使用C,WSH或其他。或者如果在PHP中有更简单的方法,请告诉我。

当我得到ip时,我会将它上传到我的ftp站点,以便我可以看到工作中的ip。

+0

像你已经做的那样刮一些外部服务可能已经足够了。它甚至可能是唯一的方法。您的路由器和/或调制解调器将会知道您的真实IP。我不知道你将如何以编程方式与之交互。 – Albert 2009-05-27 18:41:28

+6

http://www.whatismyip.org/提供了一个更简单的抓取页面。 – Albert 2009-05-27 18:42:13

回答

12

不,没有一个更简单的方法。你的电脑真的不知道它背后的公共IP--它和公共互联网之间可能有任何数量的NAT。它只知道它收到192.168.2.100的消息,并通过网关192.168.2.1发送出去的消息。它不知道数据包到达网关后会发生什么。

2

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

0

你这样做的方式可能和任何一样。

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

3

不是你所要求的,但仍然适用于你想要的。我在家用计算机上安装了GMail通知程序,然后转到帐户活动页面,查看哪个IP地址正在访问我的Google帐户。安全,简单,有效。

0

不幸的是,你的服务器将最有可能完全无视它自己的外部地址似乎是(因为它可能被进一步上游设置过一些路由器/网关)

你可以看看这个链接

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

它可能比你现在正在做的事情更容易一些解析。

0

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

  • 自动加载 ip-adress。COM页面并解析它
  • DynDNS
2

我总是用curl http://whatismyip.org让我的公网IP,而NAT后面。

0

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

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

唯一的两种方法是问别人。如何?:

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

当我需要检查自己的公网IP地址,我喜欢这个网站:

http://www.whatismyip.global/

网站不断您的IP的历史。对我来说非常有用!