码迷,mamicode.com
首页 > 其他好文 > 详细

备案IP核查自动脚本

时间:2016-08-05 12:07:17      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:备案 域名 ip

我公司使用创旗备案管理系统

近期因管局要求,对所有域名的备案信息进行核查,检查备案信息是否准确,是否存在备案IP不在我公司的域名。

特做此脚本,自动从备案系统数据库中查询出所有备案IP并进行筛选。

此脚本只适用于创旗备案系统V3.0

使用此脚本钱请手动打开备案系统数据库远程访问权限

此脚本为shell脚本,请在linux系统内运行

# 备案准确率查询脚本
# 本脚本通过自动查询自动查询备案系统数据库中的备案域名,备案IP,及备案人的联系信息,
# 通过脚本逐行ping测每个域名,并将得出的目标IP与备案系统中的IP进行比较,将比较结果导出到相应表格
# 在目标IP与备案系统中的IP不同时,将目标IP与西普IP数据库进行比较,比较此域名是否在西普的IP库中。
# 将结果导出到相应表格。
# 此脚本将导出4个表格。
# ipdiff.csv 		====> 备案IP与目标IP不同的域名信息
# ipsame.csv 		====> 备案IP与目标IP相同的域名信息
# ipinsimpul.csv 	====> 备案IP在西普数据库中的域名信息
# ipoutsimpul.csv 	====> 备案IP在西普数据库中的域名信息


  
#使用以下命令添加crontab自动下载列表 我这里添加的是每周二 00:01分运行脚本。添加完成后重启crond服务
#我这里将脚本文件保存在cacti文件夹中的file文件夹中,为了安全,可将脚本保存在别处,并在apache中添加虚拟目录,进行文件浏览。
# echo "01 01  * * 2 root  /root/ipquery.sh > /dev/null 2>&1" > /etc/cron.d/export
  
# 陕西西普数据通信股份有限公司 运行与维护部
# By:Fenei  2016年8月1日
# QQ:407603129 EMAIL:babyfenei@qq.com
# http://babyfenei.blog.51cto.com
  
#!/bin/bash
DBHOST="备案服务器IP"
USERNAME="数据库用户名"           #数据库用户名
PASSWORD="数据库密码"    #数据库密码
DBNAME="trunkeydb"            #Cacti使用的数据库名称                              
MYSQL_CMD="mysql  -h${DBHOST} -u${USERNAME} -p${PASSWORD}"
  

rm  /root/beian.tar
rm  /tmp/url.csv    #删除旧的下载列表文件
rm  /tmp/beian/ipdiff.csv    #删除旧的下载列表文件
rm  /tmp/beian/ipsame.csv    #删除旧的下载列表文件
rm  /tmp/beian/ipinsimpul.csv 
rm  /tmp/beian/ipoutsimpul.csv

mkdir -p /tmp/beian/
echo "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipdiff.csv
echo "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipsame.csv
echo "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipinsimpul.list
echo "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipoutsimpul.list

select_db_sql="select  a.Syurl,b.Qsip,a.Fzr_dhhm,a.Fzr_sjhm,a.Fzr_dzyj from tab_icpweb a LEFT JOIN tab_icpip b on a.IspWzid=b.IspJrid;"
#通过数据库查询出备案系统中经过备案的域名,IP,姓名,电话,手机,邮箱
echo ${select_db_sql}  | ${MYSQL_CMD}  ${DBNAME}    > /tmp/url.csv
if [ $? -ne 0 ]
then
 echo "select databases ${DBNAME} failed ..." >>/var/log/export/log              #数据库查询失败时将添加失败日志到日志文件中
fi

sed -i ‘s/;/\n/g‘ /tmp/url.csv    												 #将URL列表中的域名调整为单列 
  
  
cat /tmp/url.csv | awk ‘NR>1‘ | while read ICPURL ICPIP  ICPDH ICPSJ ICPYJ		#逐行读取url.csv中的每列数值并赋值到变量
 
       do
		IPA=$(ping $ICPURL -c 1 | awk ‘{print $3}‘|head -1)						#获取域名解析的IP地址
		IPB=${IPA//(/}	
		DESTIP=${IPB//)/}														#删除解析IP地址中的括号符号
		if [ "$DESTIP" !=  "$ICPIP" ];then										#判断解析IP地址与备案系统中的IP地址是否相同
		echo "$ICPURL","$ICPIP","$DESTIP","$ICPDH","$ICPSJ","$ICPYJ">> /tmp/beian/ipdiff.csv						#导出解析IP与备案IP不同的域名
		
		#此部分位判断解析IP是否在西普IP库中
		while read MASK															
		do
			min=`/bin/ipcalc -n $MASK|awk -F"=" ‘{print $2}‘`											#获取IP库中每行子网的最小IP
			max=`/bin/ipcalc -b $MASK|awk -F"=" ‘{print $2}‘`											#获取IP库中每行子网的最大IP
			MIN=`echo $min|awk -F"." ‘{printf"%.0f\n",$1*256*256*256+$2*256*256+$3*256+$4}‘`			
			MAX=`echo $max|awk -F"." ‘{printf"%.0f\n",$1*256*256*256+$2*256*256+$3*256+$4}‘`
			IPvalue=`echo $DESTIP|awk -F"." ‘{printf"%.0f\n",$1*256*256*256+$2*256*256+$3*256+$4}‘`		#此三行将IP地址又点分十进制转换位普通数值
			if [ "$IPvalue" -gt "$MIN" ] && [ "$IPvalue" -lt "$MAX" ]									#判断解析IP是否在IP库的子网范围内
			then         
			echo "$ICPURL","$ICPIP","$DESTIP","$ICPDH","$ICPSJ","$ICPYJ">> /tmp/beian/ipinsimpul.list
			else
			echo "$ICPURL","$ICPIP","$DESTIP","$ICPDH","$ICPSJ","$ICPYJ">> /tmp/beian/ipoutsimpul.list
			fi
		done</root/ipset.conf																					#ipset.conf 为西普IP库文件
		else
		 echo "$ICPURL","$ICPIP","$DESTIP","$ICPDH","$ICPSJ","$ICPYJ">> /tmp/beian/ipsame.csv
		fi	
        done
sort -u /tmp/beian/ipinsimpul.list > /tmp/beian/ipinsimpul.csv														
sort -u /tmp/beian/ipoutsimpul.list > /tmp/beian/ipoutsimpul.csv
rm  /tmp/beian/ipinsimpul.list
rm  /tmp/beian/ipoutsimpul.list													#删除导出列表中重复的行



tar zcvf /root/beian.tar /tmp/beian/
mail -s  "西普数据备案周查结果" -a /root/beian.tar babyfenei@qq.com < /root/mailtitle
mail -s  "西普数据备案周查结果" -a /root/beian.tar 31334014@qq.com < /root/mailtitle

本公司的IP列表如下:

cat /root/ipset.conf
127.0.0.1/24
111.111.111.1/23


备案IP核查自动脚本

标签:备案 域名 ip

原文地址:http://babyfenei.blog.51cto.com/443861/1834649

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!