标签:备案 域名 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
原文地址:http://babyfenei.blog.51cto.com/443861/1834649