美文网首页
为了在极路由上能用dnspod写了一个脚本......

为了在极路由上能用dnspod写了一个脚本......

作者: ieew | 来源:发表于2018-11-28 10:20 被阅读0次

    多域名ipv4版本

    #!/bin/sh
    #多域名ipv4
    
    LOGIN_TOKEN="12345,12345678901234567890123456789012"
    #dnspod登录令牌
    ip_api='http://pv.sohu.com/cityjson?ie=utf-8'
    #能返回本机ip的网络api,这个是搜狐的, 如果在你家返回的ip不正确的话也可以自己去找其他的api接口
    
    case $1 in
    wlan)
        ip=$(ifconfig | grep -A 1 "wan" | grep -o -E "r:([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[1-9])" | grep -o -E "([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[1-9])")
    ;;
    wip)
        ip=$(curl -k -s ${ip_api} | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
    ;;
    root)
        mkdir /tmp/storage/abc && /etc/init.d/dropbear start && /etc/init.d/dropbear enable && mkdir /tmp/storage/cba
        exit
    ;;
    *)
        echo -e "sh $0 wlan\n\t\t---修改记录为本机wlan口ip"
        echo -e "sh $0 wip\n\t\t---修改记录为本机公网ip"
        echo -e "sh $0 root\n\t\t---root设备开启ssh"
        exit
    ;;
    esac
    #根据传入的指令内容判断指令
    
    set 'www.baidu.com' 'www.google.com' 'www.360.com'
    
    for i in "$@"
    do
        sub_domain=$(echo ${i%.*.*})
        #提取二级域名的开头
        domain=$(echo ${i} | sed "s/${sub_domain}\.//g")
        #提取一级域名
        
        ip_bak=$(curl -k -s -X POST https://dnsapi.cn/Record.List -d "login_token=${LOGIN_TOKEN}&format=json&domain=${domain}&sub_domain=${sub_domain}"|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
        #获取dnspod中的记录
        record_id=$(curl -s -k -X POST https://dnsapi.cn/Record.List -d "login_token=${LOGIN_TOKEN}&format=json&domain=${domain}&sub_domain=${sub_domain}&offset=0&length=1"|grep -E -o "\"records\"\:\[\{\"id\"\:\"([0-9]*)\""|grep -E -o "([0-9]*)")
        #获取二级域名记录的record_id
        
        echo -e "\n要修改的域名:"${i}
        echo "本机ip:"${ip}
        echo "dnspod记录:"${ip_bak}
        #debug:两行都必须返回了ip地址,没返回就说明配置错了
        
        if [ "${ip_bak}" != "${ip}" ]; then
            echo "本地ip与记录不同,开始修改"
            dnspod_info=$(curl -s -k -X POST https://dnsapi.cn/Record.Modify -d "login_token=${LOGIN_TOKEN}&format=json&domain=${domain}&record_id=${record_id}&sub_domain=${sub_domain}&value=${ip}&record_type=A&record_line_id=0")
            dnspod=$(echo ${dnspod_info} | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
            #修改记录和通过返回的信息提取ip地址
            
            if [ "${dnspod}" == "${ip}" ];then
                echo "修改成功"
                echo "目前解析为: "${dnspod}
            else
                echo "修改失败"
                echo "debug:  "${dnspod_info}
            fi
            #判断是否修改成功
            
        elif [ "${ip_bak}" == "${ip}" ]; then
            echo -e "本地公网ip与dns记录一致,暂不修改\n"
        fi
    done
    

    多域名版需要修改为自己信息的部分为:
    LOGIN_TOKEN="12345,12345678901234567890123456789012"
    set 'www.baidu.com' 'www.google.com' 'www.360.com'

    单域名ipv4版本

    #!/bin/sh
    LOGIN_TOKEN="12345,12345678901234567890123456789012"
    #dnspod登录令牌
    ip_api='http://pv.sohu.com/cityjson?ie=utf-8'
    #能返回本机ip的网络api,这个是搜狐的, 如果在你家返回的ip不正确的话也可以自己去找其他的api接口
    domain_name='www.baidu.com'
    #你要同步的那个域名如: www.baidu.com
    
    case $1 in
    wlan)
        ip=$(ifconfig | grep -A 1 "wan" | grep -o -E "r:([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[1-9])" | grep -o -E "([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])\.([12]?[0-9]?[0-9])")
    ;;
    wip)
        ip=$(curl -k -s ${ip_api} | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
    ;;
    root)
        mkdir /tmp/storage/abc && /etc/init.d/dropbear start && /etc/init.d/dropbear enable && mkdir /tmp/storage/cba
        exit
    ;;
    *)
        echo -e "sh $0 wlan\n\t\t---修改记录为本机wlan口ip"
        echo -e "sh $0 wip\n\t\t---修改记录为本机公网ip"
        echo -e "sh $0 root\n\t\t---root设备开启ssh"
        exit
    ;;
    esac
    #根据传入的指令内容判断指令
    
    sub_domain=$(echo ${domain_name%.*.*})
    #提取二级域名的开头
    domain=$(echo $domain_name | sed "s/${sub_domain}\.//g")
    #提取一级域名
    
    ip_bak=$(curl -k -s -X POST https://dnsapi.cn/Record.List -d "login_token=${LOGIN_TOKEN}&format=json&domain=${domain}&sub_domain=${sub_domain}"|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
    #获取dnspod中的记录
    record_id=$(curl -s -k -X POST https://dnsapi.cn/Record.List -d "login_token=${LOGIN_TOKEN}&format=json&domain=${domain}&sub_domain=${sub_domain}&offset=0&length=1"|grep -E -o "\"records\"\:\[\{\"id\"\:\"([0-9]*)\""|grep -E -o "([0-9]*)")
    #获取二级域名记录的record_id
    
    
    echo "本机ip:"${ip}
    echo "dnspod记录:"${ip_bak}
    #debug:两行都必须返回了ip地址,没返回就说明配置错了
    
    if [ "${ip_bak}" != "${ip}" ]; then
        echo "本地ip与记录不同,开始修改"
        dnspod_info=$(curl -s -k -X POST https://dnsapi.cn/Record.Modify -d "login_token=${LOGIN_TOKEN}&format=json&domain=${domain}&record_id=${record_id}&sub_domain=${sub_domain}&value=${ip}&record_type=A&record_line_id=0")
        dnspod=$(echo ${dnspod_info} | grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)")
        #修改记录和通过返回的信息提取ip地址
        
        if [ "${dnspod}" == "${ip}" ];then
            echo "修改成功"
            echo "目前解析为: "${dnspod}
        else
            echo "修改失败"
            echo "debug:  "${dnspod_info}
        fi
        #判断是否修改成功
        
    elif [ "${ip_bak}" == "${ip}" ]; then
        echo "本地公网ip与dns记录一致,暂不修改"
    fi
    

    单域名需要修改为自己信息的部分为:
    LOGIN_TOKEN="12345,12345678901234567890123456789012"
    domain_name='www.baidu.com'

    http://1111.ip138.com/ic.asp
    https://ipip.yy.com/get_ip_info.php
    http://pv.sohu.com/cityjson?ie=utf-8
    http://www.ip168.com/json.do?view=myipaddress
    http://www.ipip.net/ip.php
    http://ip.chemdrug.com/
    http://ip.siteloop.net/
    http://whois.pconline.com.cn/ipJson.jsp?callback={IP:255.255.255.255}
    http://ip.siteloop.net/ajax/ip.php?ip=255.255.255.255&from=1
    http://ip.siteloop.net/ajax/ip.php?ip=255.255.255.255&from=2
    http://ip.siteloop.net/ajax/ip.php?ip=255.255.255.255&from=3
    http://www.whatismyip.com.tw/

    ipv6待续(宽带没分到ipv6.....).......
    目前用老毛子,有现成的,可用,所以...ipv6应该是咕咕咕了....

    相关文章

      网友评论

          本文标题:为了在极路由上能用dnspod写了一个脚本......

          本文链接:https://www.haomeiwen.com/subject/rzxaqqtx.html