IT技术博客大学习 共学习 共进步

python中的socket代理

I am LAZY bones ? 2010-06-03 13:21:36 浏览 6,163 次

说socket代理之前,先来说说http代理,python的urllib2是自带http代理功能的,可以用如下代码实现:

proxy_handler = urllib2.ProxyHandler({'http' : 'http://地址:端口'})
opener = urllib2.build_opener(proxy_handler, urllib2.HTTPHandler)
urllib2.install_opener(opener)

如此,接下来用urllib2来urlopen的时候,就会自动使用这个代理了。

但是,在我们疯狂的天朝,有时候,http代理并不能满足要求,也许你还想使用更底层的socket代理,于是python里似乎就没有直接的方法了(python3不知道有没有内置,未研究)。这时候,你可能需要这个包:SocksiPy - A Python SOCKS module,下载解压以后,除了文档也就一个 socks.py 文件,很方便使用,给出示例代码:

import socks, socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "地址", 端口)
socket.socket = socks.socksocket

接下来,你就可以照常使用socket了,一切都会悄悄地通过代理出去的~

建议继续学习

  1. 配置Nginx+uwsgi更方便地部署python应用 (阅读 106,824)
  2. 如何成为Python高手 (阅读 54,822)
  3. python实现自动登录discuz论坛 (阅读 32,662)
  4. python编程细节──遍历dict的两种方法比较 (阅读 20,202)
  5. 每个程序员都应该学习使用Python或Ruby (阅读 17,741)
  6. 30分钟3300%性能提升――python+memcached网页优化小记 (阅读 13,582)
  7. 使用python爬虫抓站的一些技巧总结:进阶篇 (阅读 13,123)
  8. 我的PHP,Python和Ruby之路 (阅读 12,983)
  9. 推荐一些socket工具,TCP、UDP调试、抓包工具 (阅读 10,722)
  10. Python处理MP3的歌词和图片 (阅读 9,422)