-1

我目前正在做一个项目,我需要在本地网络上访问 FTP 文件。也就是说,如果我与另一台设备在同一网络上,我们将能够使用 FTP 共享文件。问题是,它不起作用。

我可以通过在我的浏览器中访问ftp://192.168.1.xxx:xxx来连接到运行脚本的同一台机器上的服务器,但是当我尝试从不同的服务器以相同的方式连接时同一网络上的机器,它不起作用。它只是找不到IP地址。我可以在该机器上托管脚本并连接到它,但是我无法从第一台机器连接。

我真的很困惑,因为我之前尝试过 socket 模块,它只是通过类似的方式完美地工作。你们中有人知道这可能是什么吗?这是我正在使用的脚本(请注意,它与 pyftpdlib 文档中的示例代码非常相似):

from pyftpdlib.handlers import FTPHandler
from pyftpdlib.servers import FTPServer
from socket import gethostbyname, gethostname

server = None

def start_server(*, port=8080):
    authorizer = DummyAuthorizer()
    authorizer.add_user("user", "abc123", "C:\\", perm="elradfmwMT")
    authorizer.add_anonymous("C:\\")

    handler = FTPHandler
    handler.authorizer = authorizer
    handler.banner = ''

    address = gethostbyname(gethostname())

    server = FTPServer((address, port), handler)
    server.serve_forever()
    
def close_server():
    if server == None:
        print('Server has not started yet!')
        return

    server.close_all()

start_server()
4

1 回答 1

0

正如 Martin Prikryl 所说,这是 Windows 防火墙阻止访问的问题。我只需要打开我在 Windows 防火墙设置中使用的端口。

于 2020-06-26T10:51:57.967 回答