標籤:備案 網域名稱 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:[email protected]# http://babyfenei.blog.51cto.com #!/bin/bashDBHOST="備案伺服器IP"USERNAME="資料庫使用者名稱" #資料庫使用者名稱PASSWORD="資料庫密碼" #資料庫密碼DBNAME="trunkeydb" #Cacti使用的資料庫名稱 MYSQL_CMD="mysql -h${DBHOST} -u${USERNAME} -p${PASSWORD}" rm /root/beian.tarrm /tmp/url.csv #刪除舊的下載列表檔案rm /tmp/beian/ipdiff.csv #刪除舊的下載列表檔案rm /tmp/beian/ipsame.csv #刪除舊的下載列表檔案rm /tmp/beian/ipinsimpul.csv rm /tmp/beian/ipoutsimpul.csvmkdir -p /tmp/beian/echo "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipdiff.csvecho "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipsame.csvecho "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipinsimpul.listecho "DOMAIN","ICPIP","$DESTIP","ICPTEL","ICPMB","$ICPMAIL">> /tmp/beian/ipoutsimpul.listselect_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.csvif [ $? -ne 0 ]then echo "select databases ${DBNAME} failed ..." >>/var/log/export/log #資料庫查詢失敗時將添加失敗日誌到記錄檔中fised -i ‘s/;/\n/g‘ /tmp/url.csv #將URL列表中的網域名稱調整為單列 cat /tmp/url.csv | awk ‘NR>1‘ | while read ICPURL ICPIP ICPDH ICPSJ ICPYJ#逐行讀取url.csv中的每列數值並賦值到變數 doIPA=$(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 MASKdomin=`/bin/ipcalc -n $MASK|awk -F"=" ‘{print $2}‘`#擷取IP庫中每行子網的最小IPmax=`/bin/ipcalc -b $MASK|awk -F"=" ‘{print $2}‘`#擷取IP庫中每行子網的最大IPMIN=`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.listelseecho "$ICPURL","$ICPIP","$DESTIP","$ICPDH","$ICPSJ","$ICPYJ">> /tmp/beian/ipoutsimpul.listfidone</root/ipset.conf#ipset.conf 為西普IP庫檔案else echo "$ICPURL","$ICPIP","$DESTIP","$ICPDH","$ICPSJ","$ICPYJ">> /tmp/beian/ipsame.csvfi donesort -u /tmp/beian/ipinsimpul.list > /tmp/beian/ipinsimpul.csvsort -u /tmp/beian/ipoutsimpul.list > /tmp/beian/ipoutsimpul.csvrm /tmp/beian/ipinsimpul.listrm /tmp/beian/ipoutsimpul.list#刪除匯出列表中重複的行tar zcvf /root/beian.tar /tmp/beian/mail -s "西普資料備案周查結果" -a /root/beian.tar [email protected] < /root/mailtitlemail -s "西普資料備案周查結果" -a /root/beian.tar [email protected] < /root/mailtitle
本公司的IP列表如下:
cat /root/ipset.conf127.0.0.1/24111.111.111.1/23
備案IP核查自動指令碼