【Python源碼】端口訪問郵件提醒程序下載,可用于RDP和Radmin遠(yuǎn)程登錄通知
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
工具介紹:
主要實(shí)現(xiàn)的功能是獲取指定端口連接的遠(yuǎn)程 IP 地址,并將其發(fā)送給指定的郵箱,可用于一些遠(yuǎn)程工具的登錄通知,或者其他你需要檢測的程序。
特點(diǎn):
1. 可在配置文件內(nèi)自定義需要檢測的端口;支持多端口檢測;
2. 白名單功能,可設(shè)置多個(gè)IP排除;
3. 使用zmail模塊發(fā)送郵件更高效方便,不需要手動(dòng)添加服務(wù)器地址、端口以及適合的協(xié)議,zmail會(huì)幫你完成。
下載:
2023/3/1
添加了兩條錯(cuò)誤日志輸出。
2023/2/23
使用python3.10編譯,優(yōu)化了一下代碼。
執(zhí)行過程:
1.使用 ConfigParser() 函數(shù)創(chuàng)建一個(gè) config 實(shí)例,并使用 read() 方法讀取名為 Mail.ini 的配置文件。然后獲取 WL 段中的 add 選項(xiàng)的值并按逗號(hào)分隔成列表,將其保存到 wl_list 變量中。接著遍歷 port 段中的所有選項(xiàng),如果選項(xiàng)的名稱以 net_port 開頭且選項(xiàng)的值是數(shù)字,則將其轉(zhuǎn)換為整數(shù)并調(diào)用 get_remote_ips() 函數(shù)獲取當(dāng)前連接到該端口的所有遠(yuǎn)程IP地址,將其保存到 remote_ips_dict 字典中。
2.定義函數(shù) get_remote_ips(),它接收兩個(gè)參數(shù) port 和 wl_list,并使用 net_connections() 函數(shù)獲取當(dāng)前系統(tǒng)上所有建立連接的信息。然后使用生成器表達(dá)式篩選出所有遠(yuǎn)程IP地址,使得地址不是空值、狀態(tài)為 ESTABLISHED、不是本地回環(huán)地址、不包含冒號(hào),且本地地址的端口號(hào)等于 port 參數(shù)。然后使用列表推導(dǎo)式去重并過濾掉在 wl_list 中出現(xiàn)的地址,最終返回遠(yuǎn)程IP地址列表。
3.定義函數(shù) send_mail(),它接收兩個(gè)參數(shù) remote_ips_dict 和 config。函數(shù)首先獲取當(dāng)前計(jì)算機(jī)的主機(jī)名、用戶名和當(dāng)前時(shí)間,并將其插入到郵件正文中。然后遍歷 remote_ips_dict 字典中的所有端口及其對應(yīng)的遠(yuǎn)程IP地址,如果有遠(yuǎn)程IP地址則將其插入到郵件正文中,最終將郵件正文和郵件標(biāo)題通過 zmail 模塊發(fā)送到指定的收件人。
4.如果 remote_ips_dict 字典中至少有一個(gè)非空列表,則調(diào)用 send_mail() 函數(shù)將所有遠(yuǎn)程IP地址發(fā)送到指定的收件人。
2023/2/20
有朋友希望能檢測多個(gè)端口,便做了一下修改支持多端口。
python源碼:
該文章在 2023/3/1 9:05:43 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |