最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用Python編寫Windows端口映射管理工具

 更新時間:2026年03月15日 08:39:41   作者:對方正在長頭發(fā)225  
這篇文章主要為大家詳細介紹了如何使用Python編寫Windows端口映射管理工具,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

起因

最近經(jīng)常需要用 netsh interface portproxy 來配置端口轉發(fā)。每次都要敲一長串命令,而且想查看現(xiàn)有的映射規(guī)則還得再敲一遍命令,刪除的時候又是一遍...

敲多了真的煩,于是花了點時間擼了個圖形化工具,現(xiàn)在分享出來。

先看效果

界面長這樣,簡單直觀:

主要功能:

  • 一鍵添加端口映射
  • 批量刪除(支持多選)
  • 按 IP 和端口篩選
  • 自動配置防火墻規(guī)則

為什么要做這個

Windows 自帶的 netsh interface portproxy 功能挺強大,但是命令行操作實在太麻煩了。

比如添加一個映射:

netsh interface portproxy add v4tov4 listenport=8080 connectaddress=192.168.1.100 connectport=80

查看所有映射:

netsh interface portproxy show all

刪除映射:

netsh interface portproxy delete v4tov4 listenport=8080

每次都要敲這么長,而且容易打錯。更麻煩的是,添加完映射還得手動配置防火墻規(guī)則,不然外部訪問不了。

所以就想著做個工具,把這些操作都可視化,點點鼠標就能搞定。

技術選型

用的是 Python + CustomTkinter,主要考慮:

  • Python 寫起來快
  • CustomTkinter 界面比原生 Tkinter 好看多了
  • 可以打包成 exe,不用裝 Python 環(huán)境

核心就是調(diào)用系統(tǒng)命令,然后解析輸出結果展示在界面上。

實現(xiàn)細節(jié)

1. 自動提權

端口映射需要管理員權限,所以程序啟動時會自動請求提權:

def run_as_admin():
    try:
        if ctypes.windll.shell32.IsUserAnAdmin():
            return True
    except:
        pass
    
    try:
        ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, f'"{sys.argv[0]}"', None, 1)
        return True
    except:
        return False

if not ctypes.windll.shell32.IsUserAnAdmin():
    run_as_admin()
    sys.exit()

2. 命令執(zhí)行

封裝了一個執(zhí)行命令的函數(shù),處理了編碼問題(Windows 的編碼真是個坑):

def run_cmd(cmd):
    result = subprocess.run(
        cmd,
        shell=True,
        stdout=subprocess.PIPE,
        stderr=subprocess.PIPE,
        creationflags=subprocess.CREATE_NO_WINDOW
    )
    # 嘗試多種編碼解析輸出
    try:
        stdout = result.stdout.decode("utf-8", errors="ignore")
    except:
        try:
            stdout = result.stdout.decode("gbk", errors="ignore")
        except:
            stdout = result.stdout.decode("latin-1", errors="ignore")
    
    return (result.returncode, stdout, stderr)

3. 解析映射列表

netsh interface portproxy show all 的輸出格式比較固定,直接按空格分割就行:

code, out, err = run_cmd("netsh interface portproxy show all")
lines = out.splitlines()

for line in lines:
    if "偵聽" in line or "ipv4" in line or "---" in line:
        continue
    parts = line.split()
    if len(parts) >= 4:
        listen_addr = parts[0]
        listen_port = parts[1]
        target_ip = parts[2]
        target_port = parts[3]
        # 存儲到列表

4. 自動配置防火墻

添加映射的時候,順便把防火墻規(guī)則也加上:

# 添加映射
cmd = f"netsh interface portproxy add v4tov4 listenport={listen_port} connectaddress={to_ip} connectport={to_port}"
run_cmd(cmd)

# 添加防火墻規(guī)則
firewall = f'netsh advfirewall firewall add rule name="Port{listen_port}" dir=in action=allow protocol=TCP localport={listen_port}'
run_cmd(firewall)

這樣就不用手動去防火墻里配置了。

使用場景

我自己主要用在這幾個地方:

1. 內(nèi)網(wǎng)服務轉發(fā)

公司內(nèi)網(wǎng)有個測試服務器,但是只能通過跳板機訪問。在跳板機上配置端口映射,就可以直接從本地訪問了:

本地 8080 → 內(nèi)網(wǎng)服務器 192.168.1.100:80

2. 多服務統(tǒng)一管理

本地開發(fā)的時候,經(jīng)常要同時跑好幾個服務,端口一多就容易亂。用這個工具統(tǒng)一管理,一目了然:

3000 → 前端服務
3001 → 后端 API
3002 → 數(shù)據(jù)庫管理界面

3. 臨時端口轉發(fā)

有時候需要臨時把某個端口的流量轉到另一臺機器,用這個工具幾秒鐘就能搞定,不用去改配置文件。

遇到的坑

坑1:界面字體看不清

一開始用的深色主題,結果發(fā)現(xiàn)某些情況下字體顏色和背景色對比度不夠,看不清。后來改成淺色主題,并且手動指定了文字顏色,才解決。

坑2:編碼問題

Windows 命令行輸出的編碼真是個大坑,有時候是 GBK,有時候是 UTF-8。最后用了多重 try-except 來處理,先試 UTF-8,不行再試 GBK,再不行就用 latin-1。

坑3:防火墻規(guī)則

一開始只添加了端口映射,沒加防火墻規(guī)則,結果外部訪問不了。后來才發(fā)現(xiàn)還得手動配置防火墻,于是在代碼里自動加上了。

打包成 exe

用 PyInstaller 打包很簡單:

pip install pyinstaller
pyinstaller --onefile --windowed portMapping.py

--onefile 打包成單個 exe 文件,--windowed 不顯示命令行窗口。

打包完的 exe 大概 20MB 左右,可以直接分發(fā)給別人用,不需要裝 Python 環(huán)境。

后續(xù)計劃

目前功能還比較基礎,后面打算加上:

  • 導入導出配置(方便備份和遷移)
  • 支持 IPv6
  • 添加日志記錄
  • 支持端口范圍批量映射

總結

這個工具雖然簡單,但確實提高了不少效率。以前配置端口映射要敲好幾條命令,現(xiàn)在點幾下鼠標就搞定了。

如果你也經(jīng)常需要配置端口轉發(fā),不妨試試這個工具。有問題或建議歡迎留言交流!

最后說一句:工具是死的,人是活的。這個工具只是把命令行操作可視化了,底層還是調(diào)用的系統(tǒng)命令。如果你對 Windows 端口映射的原理感興趣,建議還是先了解一下 netsh interface portproxy 的用法,這樣遇到問題也知道怎么排查。

到此這篇關于使用Python編寫Windows端口映射管理工具的文章就介紹到這了,更多相關Python Windows端口映射管理內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Python OOP類中的幾種函數(shù)或方法總結

    Python OOP類中的幾種函數(shù)或方法總結

    今天小編就為大家分享一篇關于Python OOP類中的幾種函數(shù)或方法總結,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02
  • Python與Java接入AI模型的MCP協(xié)議的原理與實現(xiàn)

    Python與Java接入AI模型的MCP協(xié)議的原理與實現(xiàn)

    MCP(Model Context Protocol) 是一種專為遠程控制和管理 AI 大模型而設計的通信協(xié)議,本文小編就為大家大家介紹一下Python和Java 中接入AI大模型的MCP協(xié)議的具體方法吧
    2025-05-05
  • python下載庫的步驟方法

    python下載庫的步驟方法

    在本篇文章里小編給大家分享的是關于python怎么下載庫的詳細實例內(nèi)容,有需要的朋友們學習下。
    2019-10-10
  • Python使用for循環(huán)遍歷字符串逐個獲取字符的完整指南

    Python使用for循環(huán)遍歷字符串逐個獲取字符的完整指南

    在Python編程的浩瀚宇宙中,字符串處理是最基礎也最強大的技能之一,當你需要分析文本、清洗數(shù)據(jù)或構建復雜應用時,逐個獲取字符串中的字符往往是第一步,今天,我們將深入探索這個看似簡單卻蘊含無限可能的主題,如何用for循環(huán)遍歷字符串,逐個獲取字符
    2026-04-04
  • 如何使用pytorch構建高斯混合模型分類器

    如何使用pytorch構建高斯混合模型分類器

    本文是一個利用Pytorch構建高斯混合模型分類器的嘗試,我們將從頭開始構建高斯混合模型(GMM),這樣可以對高斯混合模型有一個最基本的理解,本文不會涉及數(shù)學,需要的朋友可以參考下
    2023-10-10
  • python3操作微信itchat實現(xiàn)發(fā)送圖片

    python3操作微信itchat實現(xiàn)發(fā)送圖片

    這篇文章主要為大家詳細介紹了python3操作微信itchat實現(xiàn)發(fā)送圖片,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python多進程的使用詳情

    Python多進程的使用詳情

    本篇重點介紹Python多進程的使用,主要介紹其的一些方法及進程的創(chuàng)建等,想進一步了解的小伙伴請跟小編一起進入下文吧
    2021-09-09
  • python 隨機生成10位數(shù)密碼的實現(xiàn)代碼

    python 隨機生成10位數(shù)密碼的實現(xiàn)代碼

    這篇文章主要介紹了python 隨機生成10位數(shù)密碼的實現(xiàn)代碼,在文中給大家提到了生成隨機密碼要實現(xiàn)的功能,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-06-06
  • Pyinstaller+Pipenv打包Python文件的實現(xiàn)示例

    Pyinstaller+Pipenv打包Python文件的實現(xiàn)示例

    相信大家都試過將Python文件進行打包,本文主要介紹了Pyinstaller+Pipenv打包Python文件,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • 使用Python實現(xiàn)向同一PDF添加附件與附件注釋

    使用Python實現(xiàn)向同一PDF添加附件與附件注釋

    在文檔管理和報表生成中,將相關文件直接嵌入 PDF 可以大大提高信息整合度,讓收件人無需額外查找即可訪問所有資源,本文演示如何在 同一 PDF 文件中實現(xiàn) 直接添加附件和添加附件注釋,希望對大家有所幫助
    2025-11-11

最新評論

清徐县| 黑山县| 新龙县| 蒙自县| 阿拉尔市| 略阳县| 资阳市| 密云县| 靖边县| 蓬安县| 承德县| 彭泽县| 腾冲县| 苗栗县| 佳木斯市| 电白县| 六枝特区| 新巴尔虎右旗| 普格县| 星子县| 湖南省| 青川县| 福贡县| 苍山县| 陆丰市| 郁南县| 和龙市| 鹰潭市| 两当县| 黄陵县| 民县| 繁昌县| 金坛市| 青铜峡市| 苗栗县| 鄱阳县| 浙江省| 肇源县| 荥经县| 环江| 永昌县|