获取我的IP地址

我在小型网络上有一台电脑,所以我的IP是192.168.2.100。

我想要获得真正的IP。 我下载了无ip客户端,但这对于这么简单的事情来说似乎很麻烦。

我创建了这个php脚本,它获得了http://www.ip-adress.com/ page并检索了它给我的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

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

有些路由器可以通过UPnP或更具体的IGD协议告诉您它们的外部IP地址。 如果您碰巧拥有启用UPnP的路由器,可以试试这个。 IStaticPortMapping :: get_ExternalIPAddress听起来很有希望。

启用S​​NMP的设备也可以告诉您他们的IP地址。 要求的OID是IP-MIB :: ipAdEntAddr 。

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

http://www.whatismyip.global/

该网站保留了您的IP历史记录。 对我来说非常有用!

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

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

不幸的是,你的服务器很可能完全忘记它自己的外部地址似乎是(因为它可能通过一些路由器/网关进一步设置在上游)

你可以看看这个链接

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

解析它可能比你现在做的要容易一些。

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

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

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

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

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

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