【Python源码】端口访问邮件提醒程序下载,可用于RDP和Radmin远程登录通知
当前位置:点晴教程→知识管理交流
→『 技术文档交流 』
工具介绍:
主要实现的功能是获取指定端口连接的远程 IP 地址,并将其发送给指定的邮箱,可用于一些远程工具的登录通知,或者其他你需要检测的程序。
特点:
1. 可在配置文件内自定义需要检测的端口;支持多端口检测;
2. 白名单功能,可设置多个IP排除;
3. 使用zmail模块发送邮件更高效方便,不需要手动添加服务器地址、端口以及适合的协议,zmail会帮你完成。
下载:
2023/3/1
添加了两条错误日志输出。
2023/2/23
使用python3.10编译,优化了一下代码。
执行过程:
1.使用 ConfigParser() 函数创建一个 config 实例,并使用 read() 方法读取名为 Mail.ini 的配置文件。然后获取 WL 段中的 add 选项的值并按逗号分隔成列表,将其保存到 wl_list 变量中。接着遍历 port 段中的所有选项,如果选项的名称以 net_port 开头且选项的值是数字,则将其转换为整数并调用 get_remote_ips() 函数获取当前连接到该端口的所有远程IP地址,将其保存到 remote_ips_dict 字典中。
2.定义函数 get_remote_ips(),它接收两个参数 port 和 wl_list,并使用 net_connections() 函数获取当前系统上所有建立连接的信息。然后使用生成器表达式筛选出所有远程IP地址,使得地址不是空值、状态为 ESTABLISHED、不是本地回环地址、不包含冒号,且本地地址的端口号等于 port 参数。然后使用列表推导式去重并过滤掉在 wl_list 中出现的地址,最终返回远程IP地址列表。
3.定义函数 send_mail(),它接收两个参数 remote_ips_dict 和 config。函数首先获取当前计算机的主机名、用户名和当前时间,并将其插入到邮件正文中。然后遍历 remote_ips_dict 字典中的所有端口及其对应的远程IP地址,如果有远程IP地址则将其插入到邮件正文中,最终将邮件正文和邮件标题通过 zmail 模块发送到指定的收件人。
4.如果 remote_ips_dict 字典中至少有一个非空列表,则调用 send_mail() 函数将所有远程IP地址发送到指定的收件人。
2023/2/20
有朋友希望能检测多个端口,便做了一下修改支持多端口。
python源码:
该文章在 2023/3/1 9:05:43 编辑过 |
关键字查询
相关文章
正在查询... |