获取公网地址并邮件之
发表于 : 2015-09-14 21:48
应用场景:家里的宽带IP一般都是动态,想在外面连接家里服务器,需要实时获取动态的IP,并邮件发送至邮箱,以便随时通过ssh可以连接家中电脑
脚本
邮件通过exim4发送,需要注意的是,需要使用smarthost方式,否则家用IP在黑名单里,发送的邮件会被服务器拒绝,smarthost配置过程中可能会遇到发送超时等问题,可能由于smtp邮件服务器解析后的地址和实际地址不一致导致的,配置是根据host $YOUR_MAIL_SERVER的结果更改。
部署好了之后,加个crontab就可以了。
求轻拍。
脚本
代码: 全选
#!/bin/bash
#Look for WAN's IP and mailto joinrain@joinrain.cn
#Last edit:2015.9.14
#---------------------------------------------------
WAN_IP_OLD=""
WAN_IP=""
MAIL_ADDR="abc@test.com"
IP_CACHE_FILE="/home/joinrain/tmp/ip_chache"
#---------------------------------------------------
touch ${IP_CACHE_FILE}
WAN_IP_OLD=`grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' ${IP_CACHE_FILE}`
#look for wan's ip
WAN_IP=`curl -s http://www.123cha.com|grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'|uniq`
#compare with
if [ "${WAN_IP_OLD}"x != "${WAN_IP}"x ];then
echo ${WAN_IP}>${IP_CACHE_FILE}
echo `date +'%Y-%m-%d %H:%M:%S'` >> ${IP_CACHE_FILE}
mail -s "PC's IP infomation" ${MAIL_ADDR} <${IP_CACHE_FILE}
fi
exit 0
部署好了之后,加个crontab就可以了。
求轻拍。