socks4/socks5 代理检测
首先,推荐一个 socks4/socks5 代理的网站,由百度,小米的工程师创办,非常棒!
米扑代理: http://proxy.mimvp.com
假设你的本机设置的开启的
http 代理地址 : 127.0.0.1:8084
socks 代理的地址 : 127.0.0.1:8085
ubuntu系统自带http和socks全局代理:
系统设置 -> 网络 -> 网络代理
设置好代理后,你需要重新打开应用程序才会生效.
如何测试代理是否成功?
因为有的程序本身不支持http代理或者socks代理,就算设置称全局代理也没用.
http全局代理测试
大家可以先设置一个错误的代理地址,比如随便一个代理端口: 127.0.0.1:4444
浏览器测试
出现下面的信息,说明浏览器已经走的是http代理,chrome和firefox要先禁用代理插件才会走系统设置的全局代理
The proxy server is refusing connections
终端测试:
wget www.mimvp.com
以下信息代表走的是127.0.0.1:4444代理设置
--2014-05-21 10:17:30-- http://www.mimvp.com/
Connecting to 127.0.0.1:4444... failed: Connection refused.
因为大部分程序都能支持http代理,因为设置了一个错误的代理地址,这些程序都是不能正常访问网络的,代表这个程序支持并且使用了你设置的代理地址,假如这个程序能正常访问网络,说明没有走你设置的代理。
你可以nslookup www.mimvp.com
能成功,说明没有走全局http代理!!
DNS解析并没有走你所设置的全局代理这个非常重要!!!!!
socks全局代理测试
socks的测试和上面的http测试方法一样,设置一个不存在的代理地址.
浏览器基本上都能完美支持http代理和socks代理.
终端下很多不能支持socks代理,
终端 wget www.mimvp.com 出现下面的信息说明没有走socks代理
--2014-05-21 10:28:52-- http://www.mimvp.com/
Resolving www.iteye.com (www.iteye.com)... 118.186.66.50
终端下面的程序基本上都不能友好的支持socks代理,要使用socks代理可以使用proxychains
sudo apt-get instal proxychains
总之,ubuntu下面的http和socks全局代理和wbm代理完全不同,感觉http和socks全局代理是个半成品....还要应用程序本身支持才行....
proxychains就比ubuntu系统自带的这种全局代理强大的多,不管是终端还是图形界面都能使用proxychains,当然要你的图形界面程序支持从终端启动运行才能用上proxychains
当然终端下使用http代理并不需要使用ubuntu系统自带的全局代理工具,直接
export http_proxy="http://127.0.0.1:8084" wget www.google.com
#访问https加密的需要设置https_proxy变量 export https_proxy="http://127.0.0.1:8084" wget https://www.google.com
https_proxy="http://127.0.0.1:8084"和https_proxy="https://127.0.0.1:8084"
是不一样的,后者需要你的代理支持https
python中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不知道有没有内置,未研究)。
socket代理
这时候,你可能需要这个包:SocksiPy – A Python SOCKS client module
SocksiPy 官方: SocksiPy
SocksiPy 下载: SocksiPy.zip
解压安装:
mkdir SocksiPy
mv SocksiPy.zip SocksiPy/
cd SocksiPy
unzip SocksiPy.zip
sudo cp socks.py /usr/local/lib/python2.7/site-packages/
下载解压以后,除了文档(README)也就一个 socks.py 文件,
将其拷贝到python的lib/pythonxxx/site-packages/目录下
使用很方便,示例代码:
import socks, socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "地址", 端口)
socket.socket = socks.socksocket
接下来,你就可以照常使用socket了,一切都会悄悄地通过代理出去的
import socks socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8088) socket.socket = socks.socksocket import urllib2 data = urllib2.urlopen('http://www.mimvp.com').read()
python urllib2 使用socks代理
python2.5中的urllib2支持http代理,不支持socks代理。假如代码库或者编码时使用了urllib2,同时又要使用socks,就需要第三方的库来实现。
SocksiPy是一个socks module。它提供了一个类socket的接口,支持socks4、socks5、http proxy
下载后在代码中引用socks.py即可,也可以写个setup.py文件安装到python的site-packages目录中。 使用时,将下面的代码放在调用urllib2的代码之前即可:
import socks
import socket
socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, "127.0.0.1", 8080)
socket.socket = socks.socksocket
import urllib2
print urllib2.urlopen('http://baidu.com').read()
pycurl 代理
如果是自己写的程序,也可以尝试使用pycurl这个库
ubuntu使用sudo apt-get install python-pycurl python-pycurl-dbg安装。
示例代码
import pycurl
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://baidu.com')
c.setopt(pycurl.PROXY, '127.0.0.1')
c.setopt(pycurl.PROXYPORT, 8080)
c.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5)
c.perform()
tsocks 代理
如果在程序外部使用socks,推荐使用tsocks。
ubuntu中直接使用sudo apt-get install tsocks安装,安装完毕以后需要修改/etc/tsocks.conf。
配置样例如下
# 默认代理服务器
server = 127.0.0.1
# 代理服务器类型
server_type = 5
# 代理服务器端口
server_port = 8080
使用时,在命令行输入tsocks 程序名即可。例如ubuntu下的epiphany浏览器没有代理设置,如果想使用socks代理,输入tsocks epiphany-browser即可(注意先关闭其他的epiphany实例)。
PHP 检测代理
check_proxy.php
<!-- check proxy socks4 and socks5 Copyright by mimvp.com 2015-02-09 --> <?php define('PROXY_CONF', '124.160.35.2:808'); define('PROXY_CHECK_URL', 'http://www.baidu.com/'); define('PROXY_LOGPATH', dirname(__FILE__) . '/proxy.log'); function check() { $ch = curl_init(); curl_setopt($ch, CURLOPT_PROXY, PROXY_CONF); curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4); curl_setopt($ch, CURLOPT_URL, PROXY_CHECK_URL); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); curl_setopt($ch, CURLOPT_TIMEOUT, 30); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); $response = curl_exec($ch); $error = curl_error($ch); var_dump("<br>response: ".$response); var_dump("<br>eror: ".$error); } curl_close($ch); unset($ch); } check(); ?>
参考推荐:
米扑代理(免费HTTP代理)
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2018-10-14 21:30:58
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!