Linux下shell获取目标IP的地区和运营商信息

使用ip库可以做到,但十分不方便,这里用外部url来获取相关信息。
最常见的www.ip138.com www.ip.cn什么的都可以获取到目标IP的地区和运营商,适用于shell脚本的还是ip.cn舒坦。
[root@server21 ~]# curl ip.cn?ip=114.114.114.114
IP:114.114.114.114 来自:江苏省南京市 信风网络

[root@server21 ~]# curl ip.cn?ip=www.towngas.cn
IP:103.227.128.245 来自:香港特别行政区 

用curl命令就搞定了,但想把内容拆分一下给到变量使用时确发现他万恶的用了中文符号
用awk -F 倒也是可以搞定。如下:
[root@localhost ~]# cat getip.sh
#!/bin/bash
Getip=$(curl -s ip.cn?ip=$1)
IParea=$(echo $Getip|awk -F ":" '{print $3}'|awk '{print $1}')
IPisp=$(echo $Getip|awk -F ":" '{print $3}'|awk '{print $2}')
if [ ! $1 ];then
    IP=$(echo $Getip|awk -F ":" '{print $2}'|awk '{print $1}')
    echo $IP $IParea $IPisp
else
    echo $1 $IParea $IPisp
fi
[root@localhost ~]# ./getip.sh 114.114.114.114
114.114.114.114 江苏省南京市 信风网络

但还是有点不方便。于是各种百度弄了段php的代码来转换一下ip.cn的输出结果: