# liteip **Repository Path**: Yogile/liteip ## Basic Information - **Project Name**: liteip - **Description**: 基于 Python 的终端网络信息获取小工具,实现域名、 IPv4 、 IPv6 、 MAC 更新的电子邮件通知。 支持 Windows7 、 Windows10 、 FreeBSD ( Linux 应该都可以支持),建议搭配 DDNS 配合使用。 - **Primary Language**: Unknown - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-10-16 - **Last Updated**: 2023-12-29 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # liteip ## 介绍 基于 Python 的终端网络信息获取小工具,实现域名、 IPv4 、 IPv6 、 MAC 更新的电子邮件通知。 支持 Windows7 、 Windows10 、 FreeBSD ( Linux 应该都可以支持),建议搭配 DDNS 配合使用。 ## 文件说明 `liteip_main_debug.py` 为主要程序,用于实现功能。 `read_liteip_db.py` 用于查看数据库文件。 两者完全独立。 ## 使用教程 ### 1. 生成配置文件 Python3 运行即可生成配置文件: ```sh 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.ini` 在 `liteip_main_debug.py` 相同路径下: ```ini [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` | `example@qq.com` | 发件邮箱账号(对应邮件服务器) | | `password` | `examplepass` | 发件邮箱账号密钥(16位密钥) | | `server` | `smtp.qq.com` | 默认使用 QQ SMTP 邮件服务器,可自行修改 | | `port` | `465` | 默认使用QQ SMTP 邮件服务器端口,可自行修改 | | `username` | `ExampleSender` | 发件人名称,可自定义 | #### 2.3 `[MAIL_RECEIVER]` | 项 | 值 | 说明 | | ---------- | ----------------- | -------------------- | | `usermail` | `example@qq.com` | 收件邮箱 | | `username` | `ExampleReceiver` | 收件人名称,可自定义 | #### 2.4 `[MAIL_BODY]` | 项 | 值 | 说明 | | ----------- | --------- | -------- | | `mail_body` | `Subject` | 邮件主题 | #### 2.5 `[MAIL_AHERF]` | 项 | 值 | 说明 | | ------------ | ----------------------------------------------- | -------------------- | | `mail_aherf` | `百度一下` | 邮件内链接 HTML 文本 | #### 2.6 示例 注意:所有参数都按照字符串管理,无需加 `""` 双引号。 Windows ``` [COMMAND] start = 2409 end = 2w3e [MAIL_SENDER] usermail = example@qq.com password = dafhafjyjd3557yjgh server = smtp.qq.com port = 465 username = Example Mail [MAIL_RECEIVER] usermail = example@qq.com username = Example [MAIL_BODY] mail_body = Example 数据变更通知 [MAIL_AHERF] mail_aherf = [百度一下] 。 ``` Linux: ``` [COMMAND] command = ifconfig eth0 | grep 'inet6 2409' | grep '216:xxxx:xxxx:6b8c' | awk '{print $2}' | head -1 [MAIL_SENDER] usermail = example@qq.com password = dafhafjyjd3557yjgh server = smtp.qq.com port = 465 username = Example Mail [MAIL_RECEIVER] usermail = example@qq.com username = Example [MAIL_BODY] mail_body = Example 数据变更通知 [MAIL_AHERF] mail_aherf = [百度一下] 。 ``` ### 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)` 函数中。 可自行修改有关内容。 示例: ![mail_html](./assert/mail_html.png) ### 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.` 不发送邮件。