首页 > 其他分享 >OPNsense 系列十:liteip 配合 DDNS 实现 IPv6 地址变化电子邮件通知

OPNsense 系列十:liteip 配合 DDNS 实现 IPv6 地址变化电子邮件通知

时间:2023-10-20 18:35:30浏览次数:36  
标签:INFO liteip mail XX INFOMATION OPNsense IPv6 MAIL

liteip

介绍

基于 Python 的终端网络信息获取小工具,实现域名、 IPv4 、 IPv6 、 MAC 更新的电子邮件通知。

支持 Windows7 、 Windows10 、 FreeBSD ( Linux 应该都可以支持),建议搭配 DDNS 配合使用。

Gitee:liteip

文件说明

liteip_main_debug.py 为主要程序,用于实现功能。

read_liteip_db.py 用于查看数据库文件。

两者完全独立。

使用教程

1. 生成配置文件

Python3 运行即可生成配置文件:

python3 ./liteip_main_debug.py

提示:

[WARNING]	[__main__]	Config.ini has been created. Check and modify file content.
[ERROR]	[PROSSESE_INFO]	[Init_Config]	Config.ini COMMOND has not been modify.
[WARNING]	[__main__]	Config.ini has been created. Check and modify file content.

生成的配置文件 config.iniliteip_main_debug.py 相同路径下:

[COMMAND]
command = 

[MAIL_SENDER]
usermail = 
password = 
server = smtp.qq.com
port = 465
username = 

[MAIL_RECEIVER]
usermail = 
username = 

[MAIL_BODY]
mail_body = 

[MAIL_AHERF]
mail_aherf = 

2. 修改配置文件

2.1 [COMMAND]

command 用于获取终端 IPv6 。

建议:固定公网 IPv6 前缀 60 位,固定终端本地 IPv6 后缀。

此参数逻辑:正则匹配所有 IPv6 地址的前 4 位十六进制和后 4 位十六进制。

2.2 [MAIL_SENDER]

说明
usermail [email protected] 发件邮箱账号(对应邮件服务器)
password examplepass 发件邮箱账号密钥(16位密钥)
server smtp.qq.com 默认使用 QQ SMTP 邮件服务器,可自行修改
port 465 默认使用QQ SMTP 邮件服务器端口,可自行修改
username ExampleSender 发件人名称,可自定义

2.3 [MAIL_RECEIVER]

说明
usermail [email protected] 收件邮箱
username ExampleReceiver 收件人名称,可自定义

2.4 [MAIL_BODY]

说明
mail_body Subject 邮件主题

2.5 [MAIL_AHERF]

说明
mail_aherf <a herf="https://www.baidu.com/">百度一下</a> 邮件内链接 HTML 文本

2.6 示例

注意:所有参数都按照字符串管理,无需加 "" 双引号。

Windows

[COMMAND]
start = 2409
end = 2w3e

[MAIL_SENDER]
usermail = [email protected]
password = dafhafjyjd3557yjgh
server = smtp.qq.com
port = 465
username = Example Mail

[MAIL_RECEIVER]
usermail = [email protected]
username = Example

[MAIL_BODY]
mail_body = Example 数据变更通知

[MAIL_AHERF]
mail_aherf = <a href='https://www.baidu.com/' target='_blank' class='amber'>[百度一下]</a>  。

Linux:

[COMMAND]
command = ifconfig eth0 | grep 'inet6 2409' | grep '216:xxxx:xxxx:6b8c' | awk '{print $2}' | head -1

[MAIL_SENDER]
usermail = [email protected]
password = dafhafjyjd3557yjgh
server = smtp.qq.com
port = 465
username = Example Mail

[MAIL_RECEIVER]
usermail = [email protected]
username = Example

[MAIL_BODY]
mail_body = Example 数据变更通知

[MAIL_AHERF]
mail_aherf = <a href='https://www.baidu.com/' target='_blank' class='amber'>[百度一下]</a>  。

3. 自动生成 liteip.db 文件

修改完配置文件后,再次执行程序。

python3 ./liteip_main_debug.py

提示:

[INFO]	[SQLITE]	[Check_DB_And_TABLE]	DB file created.
[INFO]	[SQLITE]	[Check_DB_And_TABLE]	Created TABLE LITE_IP
[INFO]	[INFOMATION]	[Set_HOST]	INFOMATION.HOST update
[INFO]	[INFOMATION]	[Auto_Init]	AUTOSET_HOST
[INFO]	[INFOMATION]	[AutoSet_UPTIME]	INFOMATION.UPTIME update
[INFO]	[INFOMATION]	[Auto_Init]	AUTOSET_UPTIME
[INFO]	[INFOMATION]	[Set_IPV4]	INFOMATION.IPV4 update
[INFO]	[INFOMATION]	[Auto_Init]	AUTOSET_IPV4
[INFO]	[SUBPROCESS]	[Get_IPv6]	Finish
[INFO]	[INFOMATION]	[Set_IPV6]	INFOMATION.IPV6 update
[INFO]	[INFOMATION]	[Auto_Init]	AUTOSET_IPV6
[INFO]	[INFOMATION]	[Set_MAC]	INFOMATION.MAC update
[INFO]	[INFOMATION]	[Auto_Init]	AUTOSET_MAC
[INFO]	[SQLITE]	[Check_DB_And_TABLE]	Created DB and TABLE finish
[INFO]	[SQLITE]	[Check_Connect]	Connected DB
[INFO]	[SQLITE]	[GET_INFO]	'SELECT from LITE_IP' succese
[INFO]	[INFOMATION]	[AutoSet_UPTIME]	INFOMATION.UPTIME update
[INFO]	[INFOMATION]	[Auto_Init]	AUTOSET_UPTIME
[INFO]	[SUBPROCESS]	[Get_IPv6]	Finish
[INFO]	[MAIL]	[SendMail]	server.login() success
[INFO]	[MAIL]	[SendMail]	server.sendmail() success
[INFO]	{'INFOMATION.HOST': 'FreeBSD', 'INFOMATION.UPTIME': '2023-10-20 07:08:38', 'INFOMATION.IPV4': '192.168.2.1', 'INFOMATION.IPV6': 'fe80::216:XXXX:XXXX:XXXX', 'INFOMATION.MAC': 'XX:XX:XX:XX:XX:XX'}
[INFO]	

[ERROR] 错误,则运行正常。

最后输出邮件主要通告信息字典,且提示 SendMail ......success 邮件发送成功。收到邮件后无异常即可正常使用。

4. 邮件

邮件内容在 liteip_mail_debug.py 文件 class Mail 类的 def Get_Html(id, host, uptime, ipv4, ipv6, mac) 函数中。

可自行修改有关内容。

示例:

5. 更新通知

建议通过计划任务实现每 15 分钟定时检查发送。

因公网 IPv6 会不定时变化。

再次执行 python3 ./liteip_main_debug.py 时:

[INFO]  [__main__]      2023-10-20 09:17:33
[INFO]  [PROSSESE_INFO] [Init_Name_And_Path]    Get system type: Linux
[INFO]  [SQLITE]        [Check_Connect] Connected DB
[INFO]  [SQLITE]        [GET_INFO]      'SELECT from LITE_IP' succese
[INFO]  [INFOMATION]    [AutoSet_UPTIME]        INFOMATION.UPTIME update.
[INFO]  [INFOMATION]    [Auto_Init]     AUTOSET_UPTIME
[ERROR] [SUBPROCESS]    [Get_IPv6]      Finish.
[INFO]  [__main__]      No infomation changed. Pass send mail.
[INFO]	{'INFOMATION.HOST': 'FreeBSD', 'INFOMATION.UPTIME': '2023-10-20 07:08:38', 'INFOMATION.IPV4': '192.168.2.1', 'INFOMATION.IPV6': 'fe80::216:XXXX:XXXX:XXXX', 'INFOMATION.MAC': 'XX:XX:XX:XX:XX:XX'}
[INFO]

判断无数据变化,则:No infomation changed. Pass send mail. 不发送邮件。

标签:INFO,liteip,mail,XX,INFOMATION,OPNsense,IPv6,MAIL
From: https://www.cnblogs.com/Yogile/p/17777760.html

相关文章

  • IPV6 STATIC
    命令分析IPV6ROUTE-STATIC目的地址子网掩码接口地址下一跳地址核心配置R1:ipv6route-static2001:8::642001:10::2R2:ipv6route-static2001:9::642001:10::1 全部配置R1<r1>displaycurrent-configuration [V200R003C00]#sysnamer1#snmp-agentlocal-enginei......
  • Linux配置IPv6地址跨网段互通
    Linux配置ipv6地址及跨网段通信目录:目录IPv6网络配置3ipv6地址配置3规划3VM1地址配置3VM2地址配置3VM3地址配置4测试三台vm的通信4ipv6-VM跨网段通信4配置VM1地址5配置R1路由地址6配置R2路由地址6配置VM2地址6配置路由转发7配置R17配置R27测试8VM1pingVM28IPv6......
  • IPV6-NDP
    配置R1:<r1>displaycurrent-configuration [V200R003C00]#sysnamer1#snmp-agentlocal-engineid800007DB03000000000000snmp-agent #clocktimezoneChina-Standard-Timeminus08:00:00#portallocal-serverloadportalpage.zip#dropillegal-maca......
  • IPV6-邻居状态迁移
    IPV6邻居状态ipv6节点需要维护一张邻居表,每个邻居都有相应的状态、状态之间可以迁移。Incomplete:邻居不可达。正在进行地址解析,邻居的链路层地址未探测(ns/na)到,如果解析成功,则进入reachable状态reachable:邻居可达。表示在规定时间(邻居可达时间,缺省情况下是30M秒)内邻居可达。如果超过......
  • OPNsense 系列九:系统配置远程备份
    说明为防止发生意外时,手动备份配置存在延误等问题,我使用Git定时远程备份到Gitee。配置远程备份创建Gitee仓库在Gitee中创建仓库。下载插件在OPNsense系统->固件->插件中下载os-api-backup和os-git-backup。配置备份在系统->配置->备份->Git中,......
  • Vmware虚拟机桥接到无线网卡,Ubuntu22.04中无法显示IPv4地址,IPv6地址可以获取,但无法上
    环境Win11电脑,Vmware17.01,Ubuntu22.04虚拟机,Windowsserver2003虚拟机问题:在使用桥接模式时,选桥接到无线网卡,Ubuntu22.04/WindowsServer2003虚拟机中无法获取IPv4地址,IPv6地址可以获取,但无法上网。解决办法:网上查了查了下,挺多人遇到这个问题,解决办法1)把桥接设置的自动,改......
  • IPv4与IPv6共存之隧道技术
    1.方法手段:将IPv6包封装到IPv4包中,并通过IPv4网络进行传输 2.两类协议利用隧道技术,孤立的IPv6网络之间可以通过IPv4网络发送IPv6包。隧道包含两类协议传输协议和乘客协议。传输协议:IPv4是传输协议,隧道是在IPv4中创建的。IPv4报头中的协议字段值41表......
  • windows11获取不到IPv6的解决方法
    「技巧」记录一下Win10系统更新后,无法获取IPv6的解决方法-知乎(zhihu.com)同时干了另一件事,就是升级了VMwarePlayer到最新版。重启后,获取到了IPv6......
  • ipv6
    vrrp 主 备网关1 vlan1主 vlan2备 vlan3主vlan4备网关2 vlan1备  vlan2主 vlan3 备vlan4主telnetssh ipv6 <Huawei>sysEntersystemview,returnuserviewwithCtrl+Z.[Huawei]sysnameroute[route]undoinenInfo:Informationcenter......
  • linux服务器关闭ipv6
    现在ipv6越来越普及,但仍然有很多网站不支持,有时候服务器开启了ipv6,默认会通过ipv6的出口请求访问,可能会造成访问慢,api接口ip受限等问题,所以有时候反而需要关闭ipv6,ssh登陆到服务器,复制以下命令回车执行即可关闭。wget -O disable_ipv6.sh http://downinfo.myhostadmin.net/vps......