Python 请求,绑定到ip

Python 请求,绑定到ip,python,urllib2,python-requests,Python,Urllib2,Python Requests,我有一个脚本,它使用urllib2发出一些请求 我使用这个技巧将另一个ip绑定到应用程序,其中我的计算机有两个ip地址(ip A和ip B) 我想切换到使用。有人知道我如何使用该库实现相同的功能吗?查看请求模块,它似乎使用httplib发送http请求httplib使用socket.create_connection()连接到www主机 了解并遵循您提供的链接中的猴子修补方法: import socket real_create_conn = socket.create_connection

我有一个脚本,它使用
urllib2
发出一些请求

我使用这个技巧将另一个ip绑定到应用程序,其中我的计算机有两个ip地址(ip A和ip B)


我想切换到使用。有人知道我如何使用该库实现相同的功能吗?

查看
请求
模块,它似乎使用
httplib
发送http请求
httplib
使用
socket.create_connection()
连接到www主机

了解并遵循您提供的链接中的猴子修补方法:

import socket

real_create_conn = socket.create_connection

def set_src_addr(*args):
    address, timeout = args[0], args[1]
    source_address = ('IP_ADDR_TO_BIND_TO', 0)
    return real_create_conn(address, timeout, source_address)

socket.create_connection = set_src_addr

import requests
r = requests.get('http://www.google.com')

似乎
httplib
将所有参数(to
create_connection()
)作为参数(vs关键字)传递,因为尝试扩展
kwargs
内的dict
set_src_addr
失败。我相信以上是您想要的,但我没有双主机可供测试。

您是否尝试过您提供的链接中提到的猴子补丁方法?没用吗?我从未研究过
请求
库,但在其中的某个地方必须创建一个套接字。请求使用urllib3,而且您所追求的功能似乎属于后者。是的,刚刚也测试了这个。使用
nc-nlvp8080
我得到默认IP的输出,而不是绑定IP的输出。