当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 7 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : 获取公网地址并邮件之
帖子发表于 : 2015-09-14 21:48 
头像

注册: 2008-10-11 22:49
帖子: 242
地址: null
送出感谢: 0 次
接收感谢: 1
应用场景:家里的宽带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就可以了。
求轻拍。


_________________
上帝也是单亲家长



_________________
评价: 3.7% sn4305
 
页首
 用户资料  
 
2 楼 
 文章标题 : Re: 获取公网地址并邮件之
帖子发表于 : 2015-10-05 0:09 

注册: 2010-08-12 16:50
帖子: 1
送出感谢: 0 次
接收感谢: 0 次
哇塞,好东西,外行小白,求引用到WIN里面的方法


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 获取公网地址并邮件之
帖子发表于 : 2015-10-05 16:41 

注册: 2008-06-23 19:31
帖子: 447
系统: debian+fedora+win10
送出感谢: 22
接收感谢: 3
:Cool 不明觉厉


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 获取公网地址并邮件之
帖子发表于 : 2016-03-01 16:23 
头像

注册: 2008-10-11 22:49
帖子: 242
地址: null
送出感谢: 0 次
接收感谢: 1
lonhu 写道:
哇塞,好东西,外行小白,求引用到WIN里面的方法


啊,win的话,用python会好一点,不过没用win下的mail服务器,不知道用什么软件。。。


_________________
上帝也是单亲家长


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 获取公网地址并邮件之
帖子发表于 : 2016-03-01 16:32 
头像

注册: 2011-03-20 13:12
帖子: 4519
地址: 山东省寿光县
系统: Debian
送出感谢: 105
接收感谢: 997
运行一个 irc 客户端即可。


_________________
Debian 中文论坛 - forums.debiancn.org
欢迎所有 Debian GNU/Linux 用户


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 获取公网地址并邮件之
帖子发表于 : 2016-03-02 11:31 
头像

注册: 2009-03-06 10:52
帖子: 261
系统: ubuntu-12.04
送出感谢: 4
接收感谢: 0 次
马洛卡


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 获取公网地址并邮件之
帖子发表于 : 2016-03-07 21:19 
头像

注册: 2009-04-11 23:46
帖子: 4130
系统: Arch Linux
送出感谢: 11
接收感谢: 124
我的方案是调用 CloudFlare 的 API 更新域名~

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


_________________
我的博客 https://blog.lilydjwg.me/
提问的智慧
Arch Linux 中文论坛

我的vimrc: https://git.io/vimrc


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 7 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 1 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译