请求,绑定到ip

时间:2012-09-25 14:38:44

标签: python urllib2 python-requests

我有一个脚本通过urllib2发出一些请求。

我使用技巧suggested elsewhere on Stack Overflow将另一个ip绑定到应用程序,我的计算机有两个IP地址(IP A和IP B)。

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

1 个答案:

答案 0 :(得分:15)

查看requests模块,看起来它使用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将所有参数(到create_connection())传递为args(vs关键字),因为尝试扩展kwargs内的set_src_addr dict失败了。我相信以上是你想要的,但我没有双待机器来测试。