HTTP Proxy Demo 代码示例

以下是一个简单的 HTTP Proxy Demo 代码,使用 Python 3 编写:

```python

import socket

def handle_request(client_socket):

# 接收客户端请求

request_data = client_socket.recv(1024)

print(request_data.decode())

# 解析请求,获取目标主机和端口号

first_line = request_data.decode().split('\n')[0]

url = first_line.split(' ')[1]

host = url.split(':')[0]

port = int(url.split(':')[1])

# 创建一个新的 socket,连接目标主机和端口号

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_socket.connect((host, port))

# 将客户端请求发送给目标主机

server_socket.send(request_data)

# 接收目标主机的响应

response_data = server_socket.recv(1024)

print(response_data.decode())

# 将目标主机的响应发送给客户端

client_socket.send(response_data)

# 关闭连接

client_socket.close()

server_socket.close()

def main():

# 创建一个 socket,绑定到本地端口号

server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

server_socket.bind(('localhost', 8000))

# 开始监听连接

server_socket.listen(1)

print('Proxy server is listening on port 8000...')

while True:

# 接受客户端连接

client_socket, client_address = server_socket.accept()

print('Received connection from:', client_address)

# 处理客户端请求

handle_request(client_socket)

if __name__ == '__main__':

main()

```

这个 Demo 实现了一个简单的 HTTP Proxy,它监听本地的 8000 端口,当有客户端连接时,它会解析客户端的请求,获取目标主机和端口号,然后创建一个新的 socket,连接目标主机和端口号,将客户端请求发送给目标主机,接收目标主机的响应,然后将响应发送给客户端。

#! -*- encoding:utf-8 -*-

    import requests

    # 要访问的目标页面
    targetUrl = "http://ip.hahado.cn/ip"

    # 代理服务器
    proxyHost = "ip.hahado.cn"
    proxyPort = "39010"

    # 代理隧道验证信息
    proxyUser = "username"
    proxyPass = "password"

    proxyMeta = "http://%(user)s:%(pass)s@%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }

    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }

    resp = requests.get(targetUrl, proxies=proxies)

    print resp.status_code
    print resp.text
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值