狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網站管理員

【Python源碼】端口訪問郵件提醒程序下載,可用于RDP和Radmin遠程登錄通知

admin
2023年3月1日 9:5 本文熱度 621
工具介紹:
主要實現的功能是獲取指定端口連接的遠程 IP 地址,并將其發(fā)送給指定的郵箱,可用于一些遠程工具的登錄通知,或者其他你需要檢測的程序。

特點:
1.  可在配置文件內自定義需要檢測的端口;支持多端口檢測;
2.  白名單功能,可設置多個IP排除;
3.  使用zmail模塊發(fā)送郵件更高效方便,不需要手動添加服務器地址、端口以及適合的協議,zmail會幫你完成。

下載:

2023/3/1
添加了兩條錯誤日志輸出。

2023/2/23
使用python3.10編譯,優(yōu)化了一下代碼。
執(zhí)行過程:
1.使用 ConfigParser() 函數創(chuàng)建一個 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地址,使得地址不是空值、狀態(tài)為 ESTABLISHED、不是本地回環(huán)地址、不包含冒號,且本地地址的端口號等于 port 參數。然后使用列表推導式去重并過濾掉在 wl_list 中出現的地址,最終返回遠程IP地址列表。
3.定義函數 send_mail(),它接收兩個參數 remote_ips_dict 和 config。函數首先獲取當前計算機的主機名、用戶名和當前時間,并將其插入到郵件正文中。然后遍歷 remote_ips_dict 字典中的所有端口及其對應的遠程IP地址,如果有遠程IP地址則將其插入到郵件正文中,最終將郵件正文和郵件標題通過 zmail 模塊發(fā)送到指定的收件人。
4.如果 remote_ips_dict 字典中至少有一個非空列表,則調用 send_mail() 函數將所有遠程IP地址發(fā)送到指定的收件人。

2023/2/20
有朋友希望能檢測多個端口,便做了一下修改支持多端口。





python源碼:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import psutil
import getpass
import time
import zmail
import configparser
import socket
 
 
def get_remote_ips(port, wl_list):
    remote_ips = [conn.raddr[0for conn in psutil.net_connections()
                  if conn.raddr and conn.status == 'ESTABLISHED'
                  and not conn.raddr[0].startswith('127.')
                  and ':' not in conn.raddr[0]
                  and conn.laddr[1== port
                  ]
    remote_ips = list(set(remote_ips))
 
    if not remote_ips or any(ip.startswith(wl) for ip in remote_ips for wl in wl_list if wl):
        return []
    return remote_ips
 
 
def send_mail(remote_ips, config):
    aa1, aa2 = socket.gethostname(), getpass.getuser()
    aa3 = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
 
    ip_list = [ip + '\n' for ip in remote_ips]
    content = (
            '<font size="4">檢測時間: {}<br>'.format(aa3)
            + '主機名: {}<br>'.format(aa1)
            + '用戶名: {}<br>'.format(aa2)
            + '連接端口 "{}" 的IP地址:<br></font>'.format(port)
            + '<b><font color="#ff0000" size="5">{}</font></b><br>'.format('<br>'.join(ip_list))
            + '<a >查詢IP歸屬地</a>'.format('<br>'.join(ip_list))
    )
 
    from_addr, pwd = config.get('Mail''from_addr'), config.get('Mail''pwd')
    title = config.get('Mail''title')
    to_addr = config.get('to_addr''add').split(',')
    server = zmail.server(from_addr, pwd)
    server.send_mail(to_addr, {'subject': title, 'content_html': content})
 
 
config = configparser.ConfigParser()
config.read('Mail.ini', encoding="utf-8-sig")
wl_list = config.get('WL''add').split(',')
port = int(config.get("port""net_port"))
 
remote_ips = get_remote_ips(port, wl_list)
if remote_ips:
    send_mail(remote_ips, config)

該文章在 2023/3/1 9:05:43 編輯過
關鍵字查詢
相關文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產管理軟件系統,系統成熟度和易用性得到了國內大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統主要針對港口碼頭集裝箱與散貨日常運作、調度、堆場、車隊、財務費用、相關報表等業(yè)務管理,結合碼頭的業(yè)務特點,圍繞調度、堆場作業(yè)而開發(fā)的。集技術的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統。
點晴WMS倉儲管理系統提供了貨物產品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質期管理,貨位管理,庫位管理,生產管理,WMS管理系統,標簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務都免費,不限功能、不限時間、不限用戶的免費OA協同辦公管理系統。
Copyright 2010-2025 ClickSun All Rights Reserved