CDN業務檢測(藍汛/帝聯)

我的博客已遷移到xdoujiang.com請去那邊和我交流
一、基礎環境
1、版本
cat /etc/debian_version 
7.8

2、內核
uname -r
3.2.0-4-amd64

3、ip(eth0)
10.1.10.185

4、相關配置文件內容
cat .config.ini
aaa.aaa.com
bbb.bbb.com
ccc.ccc.com
ddd.ddd.com
eee.eee.com
fff.fff.com

5、相關郵件腳本
mailsend.py見http://7938217.blog.51cto.com/7928217/1708228

二、具體代碼
1、cat checkcdn.sh
#!/bin/bash
#--------------------------------------------------
#Author:jimmygong
#Email:[email protected]
#FileName:checkcdn.sh
#Function:
#Version:1.0
#Created:2015-11-06
#--------------------------------------------------
sendip="10.1.10.185"
maillog="/root/aa"
mailpy="/root/mailsend.py"
#PS:dig && curl need install
[[ -e .config.ini ]] || exit 1
function checkcdn ()
{
    domain=$1
    cdnchinache="https://portal.chinacache.com/serviceInfo/getChannelServiceInfo.do?username=111111&password=222222&channelName=http://$domain"
    cdnfastcdn="http://push.dnion.com/currentIp.do?username=111111&password=222222&domain=$domain"
    while read dname
    do
        num=$(dig ${dname}|grep ${dname}|grep -i "cname"|wc -l)
        [[ $num == 1 ]] && cdnname=$(dig ${dname}|grep ${dname}|grep -i "cname"|awk '{print $5}'|cut -d. -f3)
        [[ $num == 2 ]] && cdnname=$(dig ${dname}|grep ${dname}|grep -i "cname"|head -1|awk '{print $5}'|cut -d. -f4)
        if [[ $domain == $dname ]]
        then
            if [[ $cdnname == 'ccgslb' ]]
            then
                echo $cdnchinache
            elif [[ $cdnname == 'fastcdn' ]]
            then
                echo $cdnfastcdn
            fi
        fi
    done < .config.ini
}
function action ()
{
    num=$(cat .config.ini|wc -l)
    for ((k=1;k<=${num};k++))
    do
        domainname=$(cat .config.ini|sed -n "$k"p)
        for i in $domainname
        do
            cdnname=$(checkcdn $i)
            ips=`curl -s $cdnname`
            ipexclude="111.111.111.111 222.222.222.222.333.333.333.333"
            for ip in $ips
            do
                if [[ "$ipexclude" =~ "$ip" ]]
                then
                    continue
                fi
                location=`curl -s www.cip.cc/$ip|awk /數據/|awk -F " " '{print $3,$5}'`
                echo $ip $location
            done
        done
    done> $maillog
}
function handlemail ()
{
    sed -i -e '1i\IP\t地址\t運營商' $maillog
    sed -i -e 's/^/<tr><td>/' -e 's/\s\+/<\/td><td>/' -e 's/\s\+/<\/td><td>/' -e 's/$/<\/td><\/tr>/' $maillog
    sed -i -e '1i\<table>' -e '$a\</table>' $maillog
    sed -i -e '1i\<style type="text\/css">table,td,th{border:1px solid black;}<\/style>' $maillog
    python $mailpy $maillog "$0 $sendip"
}
action
handlemail
exit 0

三、效果

wKiom1Y_84figZJYAAA3hYR8tsU863.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章