python curl urllib2 源接口(interface)地址

标签 python linux

我正在使用 urllib2 使用代理服务器发出 http 请求,如何在发出类似于curl 的请求时使用源接口(interface) ipaddress

curl --interface xx.xx.xx.xx -x yy.yy.yy.yy:8080 www.google.com

#!/usr/bin/env python

import urllib2

proxy = urllib2.ProxyHandler({'http': 'xx.xx.xx.xx:8080'})
opener = urllib2.build_opener(proxy)
urllib2.install_opener(opener)
result = urllib2.urlopen('http://www.google.com')

for line in result:
    print line.rstrip("\n")

最佳答案

有一个类似的答案,问题是 may help you 。没有必要在这里粘贴答案,但基本上 API 不会给你任何钩子(Hook),所以你必须深入 API 堆栈并修改源代码或猴子修补代码

import socket
true_socket = socket.socket
def bound_socket(*a, **k):
    sock = true_socket(*a, **k)
    sock.bind((sourceIP, 0))
    return sock
socket.socket = bound_socket 

我希望我能理解你的问题。

关于python curl urllib2 源接口(interface)地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10011613/

相关文章:

python - 创建引用表的一部分的别名

python - 如何确保在调试期间关闭 sqlite 数据库连接?

python - 如何使用 Pandas Dataframe 重复滚动减法

linux - 在 Linux 上的脚本中使用 azcopy 时如何避免出现提示?

python - 获取嵌套字典值的安全方法

python - 你应该用 wsgi 部署 django 吗?

linux - 我如何在 Linux 中禁用 90 天不活动的帐户?

regex - 定位模式

linux - 在centos中安装 Armadillo

c - 如何在linux中使用C分配大数组