在python中用BaseHTTPRequestHandler模块儿时获取客户端的ip和端口

来源:互联网 发布:sql绝对值函数 编辑:程序博客网 时间:2024/06/15 16:10

1、在python安装路径下找到E:\Program Files\Python25\Lib\SocketServer.py

2,由于python原装模块并没有为我们提供获取客户端IP地址和port的接口(至少目前我没有找到),因此需要自己动手丰衣足食了。修改SocketServer中代码,在其中添加一个全局变量,以获取客户端的addr。在handle_request()函数当中添加如下代码
代码如下:

application_client_addr=('192.168.0.1',9999)#全局变量

def handle_request(self):
        """Handle one request, possibly blocking."""
        try:
            request, client_address = self.get_request()
       global application_client_addr#声明全局变量
       application_client_addr=client_address#获取客户端addr

        except socket.error:
            return
        if self.verify_request(request, client_address):
            try:
                self.process_request(request, client_address)
            except:
                self.handle_error(request, client_address)
                self.close_request(request)

3.如何调用呢?在你的程序当中

import SocketServer

print SocketServer.application_client_addr

取完收工!



0 0