分页: 1 / 1

获取公网地址并邮件之

发表于 : 2015-09-14 21:48
brace
应用场景:家里的宽带IP一般都是动态,想在外面连接家里服务器,需要实时获取动态的IP,并邮件发送至邮箱,以便随时通过ssh可以连接家中电脑
脚本

代码: 全选

#!/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
邮件通过exim4发送,需要注意的是,需要使用smarthost方式,否则家用IP在黑名单里,发送的邮件会被服务器拒绝,smarthost配置过程中可能会遇到发送超时等问题,可能由于smtp邮件服务器解析后的地址和实际地址不一致导致的,配置是根据host $YOUR_MAIL_SERVER的结果更改。

部署好了之后,加个crontab就可以了。
求轻拍。

Re: 获取公网地址并邮件之

发表于 : 2015-10-05 0:09
lonhu
哇塞,好东西,外行小白,求引用到WIN里面的方法

Re: 获取公网地址并邮件之

发表于 : 2015-10-05 16:41
l10x
:Cool 不明觉厉

Re: 获取公网地址并邮件之

发表于 : 2016-03-01 16:23
brace
lonhu 写了:哇塞,好东西,外行小白,求引用到WIN里面的方法
啊,win的话,用python会好一点,不过没用win下的mail服务器,不知道用什么软件。。。

Re: 获取公网地址并邮件之

发表于 : 2016-03-01 16:32
vickycq
运行一个 irc 客户端即可。

Re: 获取公网地址并邮件之

发表于 : 2016-03-02 11:31
ak2008
马洛卡

Re: 获取公网地址并邮件之

发表于 : 2016-03-07 21:19
lilydjwg
我的方案是调用 CloudFlare 的 API 更新域名~

Python 脚本,不需要写文件,通过对比 DNS 查询结果和网卡地址来决定是否更新 DNS 记录。
脚本地址: https://gist.github.com/lilydjwg/68827d778da4bc8aeb63