【原创】python socket Proxy.
来源:互联网 发布:打开淘宝网首页 编辑:程序博客网 时间:2024/06/04 08:37
python基于socket的代理
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5if scheme == PROXY_TYPE.SOCKS5else socks.PROXY_TYPE_SOCKS4,hostname, port, username=username,password=password) socks.wrapmodule(urllib2)
SocksiPy--- https://pypi.python.org/pypi/SocksiPy
SocksiPy-branch - version:1.01 --- https://pypi.python.org/pypi/SocksiPy-branch
用法:
print "----------- socket proxy ----------"
import socks
import socket
base_socket = socket.socket
import requests as req
import urllib
print "\n-------------not set proxy--------------"
printurllib.urlopen("http://1111.ip138.com/ic.asp").read()
print "\n--------------set proxy------------------"
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,"10.10.20.125",443)
socket.socket = socks.socksocket
printurllib.urlopen("http://1111.ip138.com/ic.asp").read()
print '\n--------------cancel proxy----------------'
socket.socket = base_socket
printurllib.urlopen("http://1111.ip138.com/ic.asp").read()
print '\n--------------reset socketproxy-----------------'
socket.socket = socks.socksocket
print req.get("http://1111.ip138.com/ic.asp").content
print '\n--------------recancel proxy----------------'
socket.socket.setproxy()
print req.get("http://1111.ip138.com/ic.asp").content
通过输出,可以发现是可以用的
这是源示例,还有别人改造过的代码是sqlmap的代码,thirdparty/socks/socks.py
里面是加了几个函数的,wrapmodule、unwrapmodule、create_connection,用的其他的我没事细看,没多做diff看改动过哪里。
用法呢,可以看sqlmap的代码:lib/core/option.py
if scheme in (PROXY_TYPE.SOCKS4,PROXY_TYPE.SOCKS5):
else:
socks.unwrapmodule(urllib2)
看过sqlmap的socks.py就可以理解,wrapmodule其实就对对某个模块的socket代码进行备份、替换为socket代理模式。
怎么说呢,推荐使用sqlmap改造的socks.py
TODO:缺点:项目全局的socket代理,感觉不是太好,得稍微改造一下,让其支持多线程、多socket代理。
0 0
- 【原创】python socket Proxy.
- 【原创】 python simplegui
- 【原创】python map
- 【原创】python gevent
- 【原创】 linux Python 列表整合
- 【原创】python try cat…
- 【原创】python The pac…
- 【原创】python assert 断言
- 【原创】 python reduce表达式
- 【原创】python zip 函数
- 【原创】 linux-python …
- 【原创】 linux-python …
- 【原创】 linux-python …
- 【原创】 linux-python …
- 【原创】 linux-python …
- 【原创】 linux-python …
- 【原创】 python django…
- 【原创】 linux-python …
- python: numpy-- 函数 argsort 用法
- 【原创】SSH/Python Error:&n…
- JavaSE 学习参考:静态内部类
- 【原创】python-DNS 缓存 配置
- Selection Sort(选择排序)
- 【原创】python socket Proxy.
- Java定时器(实现每月1号、每日、每15分钟自动执行任务)
- 大话设计模式第一讲(简单工厂模式)
- 2017全国深度学习技术应用大会,人工智能将走向更多领域
- 按钮开关效果
- 【原创】python gevent
- 02.Mybatis初级使用-Mybatis核心组件
- 【原创】python-rq Redis-Queue
- 【原创】python urllib/reque…