首页 > Linux入门大全 > 比curl ifconfig.me更好获取外网ip – slowhe

比curl ifconfig.me更好获取外网ip – slowhe

2014年10月30日

比curl ifconfig.me更好获取外网ip – slowhe

http://www.tuicool.com/articles/JbAjqm

比curl ifconfig.me更好获取外网ip – slowhe – 推酷

curl ifconfig.me不能总是返回外网ip,尤其是网络复杂的情况。最近想给那台centos加上电,学习下linux,但由于住的地方太拥挤,只好放在了朋友的那里,只要开机,我就可以远程ssh上去。

一开始的思路是curl ifconfig.me,但是发现,curl ifconfig.me半天都不返回,于是就使用了另外一种方法,如图:

zm6f6r

思路是:使用curl登陆到路由器特定页面,我朋友的路由器的特定页面是/userRpm/StatusRpm.htm,这个特定页面上有外网的ip地址,当然不同类型的路由器外网ip的页面可能不一样,可以使用游览器去查看这个特定页面的地址。

把这个特定页面的内容放入一个文件中去,再使用mail工具把文件的内容发送到我自己的邮箱,由于我朋友的外网ip可能随时变更,所以sleep 1800一下,这个间隔时间应该差不多了。

一般情况下,qq邮箱会拦截这封邮件,使用需要设置下qq邮箱的‘域名白名单’,如图:

RbMRJb

这样qq邮件就可以把mail工具发出的邮件显示到qq邮件的收件箱中,我的收件箱收到的内容为一个附件,如图:

eYVnAr

把附件下载下来,使用gvim打开,查找字符串wanPara,就会有如下内容:

Jz2A3a

红色的部分就是我朋友路由器的公网ip了,在win上使用putty到那个公网ip就可以了。

一切都很顺利,但是我朋友的路由器还要做个端口映射,把公网ip的22端口映射到局域网的linux的22端口上去,这个设置可以通过路由器设置页面搞定,个人觉得这个方法要比直接curl ifconfig.me获取公网ip好。

另外还可以把这个脚本设置成开机启动,我的做法如下:

Jn2qYj

脚本还有大的改进空间,以后再来整。

本文的评论功能被关闭了.