时间:2022-05-07 09:11:20 | 栏目:Shell | 点击:次
可用于shell环境进行IP归属地查询
#!/bin/bash #传入IP参数 IP=$1 #使用百度开放地址库 url="http://opendata.baidu.com/api.php?query=${IP}&co=&resource_id=6006&t=1412300361645&ie=utf8&oe=gbk&cb=op_aladdin_callback&format=json&tn=baidu&cb=jQuery1102026811896078288555_1412299994977&_=1412299994981" path=`curl -s $url |iconv -fgb2312 -t utf-8 |awk -F: '{ print $6}' |awk -F[\"] '{ print $2}'` echo "${IP}#${path}"
经常会遇到需要查找ip归属地,尤其是批量查找的时候,使用脚本就比较方便了,在网上找到一个,自己更改了一下,修复了在linux下出现中文乱码的问题,代码如下:
#!/bin/bash #Purpose: 查找ip地址所在地 ipp (){ exec < $1 while read a do sring=`curl -s "{a}&action=2"| iconv -f gb2312 -t utf-8|grep ' ' | awk -F '[<> ]+' '{print substr($7 ,7)}'` echo $a $sring done } case $1 in -f) shift ipp $1 ;; -i) shift sring=`curl -s "{1}&action=2"| iconv -f gb2312 -t utf-8 |grep ' ' | awk -F '[<> ]+' '{print substr($7,7)}'` echo $1 $sring ;; *) echo "[Help] $0 need -f or -i -f ------- argument is a file -i ------- argument is a IP [For example]: $0 -f filename $0 -i ipadress " ;; esac