使用python模拟一个fetServer
import os import socket import threading from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import FTPHandler from pyftpdlib.servers import FTPServer _source_root = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) ftp_home = os.path.join(_source_root, "resources\\uploads\\") def get_ip_by_prefix(prefix): _ip = '' for ip in socket.gethostbyname_ex(socket.gethostname())[2]: if ip.startswith(prefix): _ip = ip return _ip class FtpServer: _instance = None def __new__(cls, *args, **kwargs): if not cls._instance: cls._instance = super(FtpServer, cls).__new__(cls, *args, **kwargs) cls._instance.init_server() return cls._instance def init_server(self): auth = DummyAuthorizer() auth.add_user("123", "123", homedir=ftp_home, perm="elradfmw") auth.add_anonymous(homedir=ftp_home, perm="elradfmw") handler = FTPHandler handler.authorizer = auth # 使用本机小网ip作为ftpServer address = (get_ip_by_prefix("192."), 21) self.server = FTPServer(address, handler) def start(self): self.server.serve_forever() def start_ftp_server(): server = FtpServer() server.start() def ftp_server_runner(): t = threading.Thread(target=start_ftp_server) t.daemon = True t.start() try: while True: pass except KeyboardInterrupt: print("shutting Down") if __name__ == "__main__": ftp_server_runner()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通