#!/bin/bash
#shell_name: ipaddress.sh
#date: 20220627
#author: huanghaijian
NUM=0
rm -rf ipaddress.sh.new
FILE=$1
sed -i 's/^[\t ]\+//' $FILE ##删除行首空格和制表符
sed -i 's/\s*$//' $FILE #删除行尾空白
LINE_NUM=$(cat $FILE|wc -l) ##计算文件行数
awk '{print $1}' $FILE | sort | uniq | while read line ##输出文件中单行内容
do
IP=`curl -s http://ip.tool.chinaz.com/$line|grep -A 7 w50|grep -E 'onclick|em'|awk -F ">" '{print $2}'|awk -F "<" '{print $1}'|sed 'N;s/\s*\n\s*/ /'` ##关键代码
let NUM++ ##计数
TS="`echo $NUM*100/$LINE_NUM|bc`%" ##输出百分比
echo $IP $NUM $TS ##输出运行结果
echo $IP >> ipaddress.sh.new ##当前目录保存运行输出结果
done
WITH=`cat $FILE|grep -vw "[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}"` ##不符合查询归属地址
ICONV="iconv -f GBK -t UTF-8"
if [[ -z $WITH ]];then
echo -e "\033[32m======${FILE}文件查询归属地址结束======\033[0m"|$ICONV
else
echo -e "\033[32m======${FILE}文件查询归属地址结束======\033[0m"|$ICONV
echo -e "以下为不符合查询归属地地址: \n$WITH"|$ICONV
fi