shell批量查询IP地址归属地

seofangfa shell学习笔记24,615阅读模式

最近在搞代理IP(见上一篇“shell小技巧:用curl批量验证代理IP是否可用”)的时候遇到一个小问题,我需要知道收集到的几百个可用的代理IP地址归属地是哪儿的,然后根据我的需求选择该用哪个IP地址。比较的笨的办法是,把IP地址扔到百度里边,查一个记录一个,如果少量IP的话还可以这么做,但是现在手中有好几百个啊,一个一个查的话,得查好几天呐!于是我在想能不能用程序来批量查,刚好最近在学习shell下一个功能强大的命令curl,想试一下能不能用curl解决,结果很顺利的就解决了!本来想用curl去解析IP地址查询结果页面,再用零宽断言来取出我所需要的数据,结果curl出来的数据已经是很干净的了,直接输出就能用了。

代码如下:

cat ip.txt|sort|uniq|while read line;do curl http://www.ip.cn/index.php?ip=$line;done

解释一下代码意思:用cat命令去读取ip.txt文件,经过sort排序和uniq去重后,结果用while read line来逐个读出,然后把每一条读出的结果传到www.ip.cn/index.php?ip=这个查询地址中去,再通过curl命令解析当前页面的html代码,取出我们所需要的内容就行了。

过程如下图所示:

shell批量查询IP地址归属地

如果刚好你也有这个需求,不妨试试上面提到的方法。

当然,如果你不想安装cygwin,这里提供两个在线工具,同样可以快速批量查询IP地址所在地:

1、http://hd2001562.ourhost.cn

2、http://ip.soshoulu.com

文章末尾固定信息

weinxin
我的微信
我的微信
微信扫一扫
 
seofangfa
  • 本文由 seofangfa 发表于 2014年8月18日00:12:29
  • 转载请务必保留本文链接:https://wp.fangfa.me/shell/ip-location.html
评论  2  访客  2
    • 屠龙
      屠龙 0

      这方法好呀。

        • 方法
          方法

          @ 屠龙 呵呵,瞎折腾,如果数据量不是很大,直接用文章末尾提到两个在线工具就行了,速度也比较快。shell这种我测试了400多条数据,用时56秒。

      匿名

      发表评论

      匿名网友
      :?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:
      确定

      拖动滑块以完成验证