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