繁体   English   中英

如何从SimpleHTTPServer获取客户端IP

[英]How to get client IP from SimpleHTTPServer

使用Python中的SimpleHTTPServer模块构建简单的文件服务器,但是在尝试从连接的客户端获取IP时遇到了问题。 这是我所拥有的..

import SimpleHTTPServer

Handler = SimpleHTTPServer.SimpleHTTPRequestHandler
httpd = SocketServer.TCPServer(("", 8080), Handler)

print "Serving local directory"

while True:
    httpd.handle_request()
    print Handler.client_address[0]

当客户端连接时,我得到..

AttributeError:类SimpleHTTPRequestHandler没有属性'client_address'

我知道这是因为我尚未实例化该类,但是还有另一种无需创建处理程序实例即可从客户端获取IP的方法吗? 建立连接后,客户端的IP将输出到控制台,我只需要一种方法即可在脚本中获取该IP。

谢谢!

实际上, Handler类对象与特定实例无关。 设置自己的处理程序类,如下所示:

import SimpleHTTPServer
import SocketServer


class MyHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
    def handle_one_request(self):
        print(self.client_address[0])
        return SimpleHTTPServer.SimpleHTTPRequestHandler.handle_one_request(self)

print("Serving local directory")
httpd = SocketServer.TCPServer(("", 8080), MyHandler)

while True:
    httpd.handle_request()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM