九九国产视频_亚洲精品国产三级在线观看_很污很黄能把下面看湿的短文_69色视频日韩在线视频

遠程登錄RDP(3389)和Radmin端口(訪問)郵件通知(提醒)小工具

[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!

今天還寫了有網友中了勒索病毒,其實就是RDP不夠嚴謹造成的,雖然安全性軟件也很多,但難免依然還會中;

用frps做內網穿透服務器的多注意-小心中招勒索病毒lockbit2.0

現在有這么一個軟件,就是登錄遠程服務器的時候就會自動郵件提醒,包括自己登錄;演示效果如下:

遠程登錄服務器3389郵件通知小工具介紹:

主要實現的功能是獲取指定端口連接的遠程 IP 地址,并將其發送給指定的郵箱,可用于一些遠程工具的登錄通知,或者其他你需要檢測的程序。

遠程登錄服務器3389郵件通知小工具特點:

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

遠程登錄服務器3389郵件通知小工具原理:

1.讀取配置文件 'Mail.ini' 中的配置信息,包括白名單和檢測端口
2.根據讀取的端口信息,調用 get_remote_ips 函數獲取指定端口的遠程IP地址列表,并將其存儲在 remote_ips_dict 字典中
3.根據 remote_ips_dict 字典中的數據生成郵件正文
4.使用 zmail 庫發送郵件給指定的收件人地址,郵件包括檢測時間、主機名、用戶名、檢測到的連接端口以及該端口連接的遠程IP地址列表,同時提供查詢IP歸屬地的鏈接。

遠程登錄服務器3389郵件通知小工具更新:

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地址發送到指定的收件人。

遠程登錄服務器3389郵件通知小工具演示:

遠程登錄服務器3389郵件通知小工具軟件下載地址:

隱藏內容,回復可見“馬上回復”后“刷新頁面”即可查看隱藏內容!
(溫馨提示:發表評論請勾選 在此瀏覽器中保存我的顯示名稱、郵箱地址和網站地址,以便下次評論時使用。

遠程登錄服務器3389郵件通知小工具代碼如下:

from configparser import ConfigParser
from time import strftime, localtime
from psutil import net_connections
from os import environ
import zmail

# 獲取遠程IP地址
def get_remote_ips(port, wl_list):
# 使用psutil庫中的net_connections函數獲取所有網絡連接信息
# 篩選出對應端口、處于已建立狀態、遠程地址不是回環地址和IPv6地址的網絡連接
remote_ips = (conn.raddr[0] for conn in 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)

# 返回遠程IP地址列表中不在白名單中的地址
return [ip for ip in set(remote_ips)
if not any(ip.startswith(wl) for wl in wl_list if wl.strip())] or []

# 發送郵件
def send_mail(remote_ips_dict, config):
# 獲取計算機名稱、用戶名和當前時間
try:
hostname, username = environ["COMPUTERNAME"], environ["USERNAME"]
time = strftime("%Y-%m-%d %H:%M:%S", localtime())

# 構造郵件正文
content = [f'<font size="4">檢測時間: {time}<br>主機名: {hostname}<br>用戶名: {username}<br></font><br>']
for port, remote_ips in remote_ips_dict.items():
if remote_ips:
content.append(
f'連接端口<font color="#0000ff"><b>"{port}"</b></font>的IP地址:<br>'
f'<b><font color="#ff0000" size="5">{"<br>".join(remote_ips)}</font></b><br>'
f'<a <br>".join(remote_ips)}'
f'">查詢IP歸屬地</a><br>====================<br><br>')
content = "".join(content)

# 從配置文件中讀取發件人地址、密碼和郵件標題
from_addr, pwd, title = (
config.get('Mail', key) for key in ('from_addr', 'pwd', 'title')
)
# 從配置文件中讀取收件人地址列表
to_addr = config.get('to_addr', 'add').split(',')
# 使用zmail庫發送郵件
zmail.server(from_addr, pwd).send_mail(to_addr, {'subject': title, 'content_html': content})
except Exception as e:
with open("Mail.log", "a", encoding="utf-8") as f:
f.write(f"[{strftime('%Y-%m-%d %H:%M:%S', localtime())}] [ERROR] 郵件發送失敗: {str(e)}\n")

# 從配置文件中讀取白名單和需要檢測的端口
config = ConfigParser()
config.read('Mail.ini', encoding='utf-8')
wl_list = config.get('WL', 'add').split(',')
remote_ips_dict = {}
for port_key, port in config.items('port'):
if port_key.startswith('net_port') and (port := port.strip()).isdigit():
remote_ips = get_remote_ips(int(port), wl_list)
if remote_ips:
remote_ips_dict[int(port)] = remote_ips
else:
with open('Mail.log', 'w', encoding="utf-8") as f:
f.write(f"[{strftime('%Y-%m-%d %H:%M:%S', localtime())}] "
f"[INFO] 端口{port}外部IP不存在或與白名單匹配,程序退出。\n")

# 如果有需要發送的遠程IP地址,則發送郵件
if remote_ips_dict.values():
send_mail(remote_ips_dict, config)

666

問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信

所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責聲明,若由于商用引起版權糾紛,一切責任均由使用者承擔。

您必須遵守我們的協議,如您下載該資源,行為將被視為對《免責聲明》全部內容的認可->聯系老梁投訴資源
LaoLiang.Net部分資源來自互聯網收集,僅供用于學習和交流,請勿用于商業用途。如有侵權、不妥之處,請聯系站長并出示版權證明以便刪除。 敬請諒解! 侵權刪帖/違法舉報/投稿等事物聯系郵箱:service@laoliang.net
意在交流學習,歡迎贊賞評論,如有謬誤,請聯系指正;轉載請注明出處: » 遠程登錄RDP(3389)和Radmin端口(訪問)郵件通知(提醒)小工具

1 評論

發表回復

本站承接,網站推廣(SEM,SEO);軟件安裝與調試;服務器或網絡推薦及配置;APP開發與維護;網站開發修改及維護; 各財務軟件安裝調試及注冊服務(金蝶,用友,管家婆,速達,星宇等);同時也有客戶管理系統,人力資源,超市POS,醫藥管理等;

立即查看 了解詳情