多域名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应该是咕咕咕了....