NAS动态获取IPV6并通过邮件通知用户

您所在的位置:网站首页 查看群晖ipv6地址 NAS动态获取IPV6并通过邮件通知用户

NAS动态获取IPV6并通过邮件通知用户

2024-06-03 12:55| 来源: 网络整理| 查看: 265

前提条件:NAS处于IPV6公网 判断当前网络属于IPV4/V6

通过以下命令获取当前公网IP:

#windows cmd or linux bash curl http://icanhazip.com

如果返回 xx.xx.xx.xx 那当前只有ipv4 如果返回xx:xx:xx:xx:xx:xx:xx:xx 那当前处于ipv6公网,返回值就是当前机器的ipv6地址

获取IPV6公网IP的方式

宽带 博主当前用的是电信宽带,默认是v4私网+v6公网,光猫、路由器、NAS均支持IPV6,可以直接获取IPV6公网IP

手机 手机获取的IPV6默认就是公网的,手机热点可以给NAS提供公网IPV6

打开NAS的ssh

在这里插入图片描述

python2实现获取公网IP、发QQ邮件 获取最新公网IP import urllib2 url = urllib2.urlopen("http://icanhazip.com") text = url.read()[:-1] #返回的最后一个字符是\n 发邮件

在设置→账户打开SMTP并获取授权码 打开SMTP服务 获取授权码

发送邮件

import smtplib from email.mime.text import MIMEText #change begin mail_pass = 'xxx' #QQ邮箱的授权码 sender = '[email protected]' #发件人 receivers = '[email protected]' #收件人 subject = '' #邮件主题 mail_info = '' #邮件正文 #change end mail_host="smtp.qq.com" message = MIMEText(mail_info) message['From'] = sender message['To'] = receivers message['Subject'] = subject try: s = smtplib.SMTP_SSL(mail_host, 465) s.login(sender, mail_pass) s.sendmail(sender, receivers, message.as_string()) except Exception as e: print(str(e)) 定时通知 通过Linux的cron进程实现这个需求,具体命令:crontab crontab -e # m h dom m dow cmd # 分 时 日 月 周 具体执行的命令,尽量是绝对路径 0,15,30,45 * * * * python /xxx/getipv6.py 小结:

通过url获取当前公网IP、通过smtp发送邮件、通过crontab定时运行脚本。

提升:

大家可以看到,目前是每一刻钟发送一次邮件,理论上邮件量非常大,那么在尽量做到实时获取ip地址的情况下如何避免这个问题呢? 博主在这里提出了一个解决方案:保存上次获取的IP,如果最新的IP与上次的不一致,再发邮件。 大家可以按自己的思维来。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3