波斯马BOSSMA Information Technology

使用HTTP请求获取你的公网出口IP

发布时间:2018年2月10日 / 分类:SERVER / 12,788 次浏览 / 评论

访问别人提供的网络服务时,对方出于安全性方面的考虑,可能会对请求的IP进行白名单限制,这时候需要提供机器的出口IP。比如目前微信公众号对于访问其接口需要先绑定开发者的服务器IP,这个IP实际上就是开发者服务器的出口IP。

但是获取当前机器的公网出口IP并不是想象中的那么容易。如果你的电脑直接暴漏在公网中,通过ipconfig或者ifconfig可以直接获取到这个IP。但是如果你在局域网中,ipconfig之类的命令只能获取到局域网分配的内部IP,这个地址在公网中不能访问。

局域网用户一般通过代理服务器上网。比如家里有三台电脑都需要上网,它们都连接到某个路由器,这个路由器再将相应的网络请求转发到实际的地址,路由器这时候就起到代理服务器的作用。再比如某个公司的服务器机房,其中部分机器需要访问外部网络,为每台机器分配独立的公网地址很不划算,这时候也需要通过某个代理服务器访问公网。这时候代理服务器的公网IP地址才是你的公网出口IP。

但是有些时候公网IP并不一定就是公网出口IP,上边两个例子中是内网访问外网资源,反过来,外网访问内网资源时同样可以使用代理服务器,称之为反向代理。这种方式通过在反向代理服务器开放某个端口,然后将对此端口的访问映射到提供服务的内网机器。对于外网用户来说,他们看到的就是反向代理服务器提供了相应的网络服务,完全不知道内网机器的存在。提供代理和反向代理的服务器可能是同一个,比如家庭路由器,既提供了代理上网的功能,还可以将某些端口开放并映射到内网电脑。但是在企业网络服务的生产环境中,出于资源管理、性能、以及安全性等方面的考虑,代理服务器和反向代理服务器一般选择不同的网络通道,使用不同的IP地址。

这些IP地址一般都可以通过网络管理员或者网络服务运营商来获得。但是在某些情况下获取这些信息可能不是很方便。比如家庭上网时对外的IP经常改变,需要及时的获取最新的IP地址,电信运营商不会搭理你。再比如使用虚拟主机的情况下,服务商只提供了主机对外提供服务时使用的IP地址,应用程序访问外部服务时可能使用了不同的网络通道,这个网络通道的IP地址没有相应的说明。

那么如何才能快速准确的获取公网出口IP呢?

可以直接访问某些提供此服务的网站,比如ip138或者百度,都可以在页面显示此IP,但是页面上也会有很多无关的其它内容,把IP地址摘出来还是有些麻烦。目前网络上也有人提供了一些接口,可以通过程序发起http请求来获取此IP,但是要么国外的访问不稳定,要么国内的不够简洁。

有没有一种简洁高效快速的方式呢?没有广告和过多的说明,既可以浏览器直接访问,也可以通过程序定时刷新。

很荣幸FireflySoft现在提供了这种获取出口IP的方式,浏览器访问 http://myip.fireflysoft.net,直接返回你的出口IP地址,没有任何其他信息干扰,阿里云多线网络接入,速度杠杠滴。当然自己写个程序访问也是一样的。看下图:

网络环境复杂多变,开发人员只需在服务器发起一次HTTP请求,就能获取到这个IP。

是不是太简单了!!!需要的同学快试一下吧。

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《使用HTTP请求获取你的公网出口IP

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论