簡體   English   中英

如何讓 Python 自動允許端口通過 Windows 防火牆

[英]How to make Python automatically allow port through Windows firewall

我有一個 FTP 服務器,我希望能夠將其發送到我所在區域(不同 IP)周圍的個人 Windows 10 計算機以訪問文件,為了訪問它們,我需要允許端口通過防火牆。 除了這樣做之外,有沒有辦法讓我的 Python 程序使用一些不需要繞過防火牆或完全繞過防火牆的其他端口?

服務器.py

from pyftpdlib.authorizers import DummyAuthorizer
from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
import urllib.request

import mysql.connector
sqlpass = ""
version = "1.3"

def ftp_main():
    mydb = mysql.connector.connect(
        host="",
        port="3306",
        user="",
        passwd=sqlpass,
        database=""
    )
    mycursor = mydb.cursor()

    mycursor.execute("SELECT Username, Password FROM FtpInfo")
    myresult = mycursor.fetchall()
    Username, Password = myresult[0]
    print(Username + " " + Password)

    external_ip = urllib.request.urlopen('https://ident.me').read().decode('utf8')

    print(external_ip)
    authorizer = DummyAuthorizer()

    # Define a new user having full r/w permissions and a read-only
    # anonymous user
    authorizer.add_user(Username, Password, '.', perm='elradfmwMT')
    authorizer.add_anonymous('.')

    # Instantiate FTP handler class
    handler = FTPHandler
    handler.authorizer = authorizer
    handler.masquerade_address = external_ip
    handler.passive_ports = range(60000, 60999)

    # Define a customized banner (string returned when client connects)
    handler.banner = "FTP Server v" + version

    address = ('', 1000)
    server = FTPServer(address, handler)

    # start ftp server
    server.serve_forever()

ftp_main()

我不知道配置 Windows 防火牆的任何本機 Python 方式。

盡管您可以使用os.system從 Python 簡單地執行Windows netsh命令

請參閱如何通過批處理文件在 Windows 防火牆上打開端口

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM