xxx.xxx.xxx.xx1
xxx.xxx.xxx.xx2
.xx1是默认那个,如何在python内用第二个IP?
xxx.xxx.xxx.xx2
.xx1是默认那个,如何在python内用第二个IP?
|
1
socket proxy
|
|
mudoneNov 20, 2012
2
cURL可以指定ip发起请求。
|
|
CoXNov 20, 2012
3
以前做过个小应用,用的是httplib2,稍作了下修改就能bind ip 了,不知道requests能不能直接bind ip
|
|
4
import requests
headers = {} headers['Host'] = 'www.example.com' requests.get('http://10.0.0.1/', headers=headers) |
|
BigZNov 20, 2012
5
@Livid 你没有看懂lz意思,
lz,你只能修改路由表,让系统使用指定IP作为源址,用ip route 来改 简单的做法是,你先在本机取消一个ip的绑定,只留你想要的那个 或者你起一个nginx做代理,配置文件里面listen两个不同的ip,python使用这个代理去采集,反正都是本机,性能损失不大 |
|
7
SO_BINDTODEVICE 泪流满面啊
|
|
10
当然random_ip务必要改为外网IP
http://gist.github.com/4117504 |
|
kuaiziNov 20, 2012
12
|
|
ledzep2Nov 20, 2012
14
bind正解
|
|
16
@Livid @zbgzao 你的绞尽脑汁就是copy的很辛苦吗? http://stackoverflow.com/a/1150408/492864
@liuxurong google: python set source ip 就有很多答案了 |
|
neilddDec 5, 2012
19
--- /usr/lib64/python2.4/httplib.py 2009-09-04 03:38:18.000000000 +0800
+++ /usr/lib64/python2.4/httplib.py 2010-07-06 18:07:18.000000000 +0800 @@ -156,6 +156,7 @@ # maximal amount of data to read at one time in _safe_read MAXAMOUNT = 1048576 +Local_BindIP = None class HTTPMessage(mimetools.Message): def addheader(self, key, value): @@ -621,6 +622,8 @@ af, socktype, proto, canonname, sa = res try: self.sock = socket.socket(af, socktype, proto) + if Local_BindIP is not None: + self.sock.bind((Local_BindIP,0)) if self.debuglevel > 0: print "connect: (%s, %s)" % (self.host, self.port) self.sock.connect(sa) |