您的当前位置:首页正文

米扑代理示例(mimvp-proxy-demo)

来源:花图问答

米扑代理示例(mimvp-proxy-demo)

米扑代理示例,包含Python、Java、PHP、C#、Go、Perl、Ruby、Shell、NodeJS、PhantomJS、Groovy、Delphi、易语言等十多种编程语言或脚本,通过大量的可运行实例,详细讲解了使用代理IP的正确方法,方便网页爬取、数据采集、自动化测试等领域。

$proxy_socks4 = "socks4://94.158.70.129:1080";

$proxy_socks5 = "socks5://173.230.95.147:45454";

// curl

proxy_curl($proxy_socks4, $mimvp_url); // socks4

proxy_curl($proxy_socks5, $mimvp_url); // socks5

function proxy_curl($proxy_uri, $mimvp_url) {

$proxy= explode('://', $proxy_uri)[1]; // ip:port

echo "proxy_uri :  $proxy_uri; key : $key, proxy : $proxy ";

$ch = curl_init ();

curl_setopt ( $ch, CURLOPT_URL, $mimvp_url);

curl_setopt ( $ch, CURLOPT_HTTPPROXYTUNNEL, false );

curl_setopt ( $ch, CURLOPT_PROXY, $proxy );

}

curl_setopt ( $ch, CURLOPT_SSL_VERIFYHOST, 2 );

curl_setopt ( $ch, CURLOPT_SSL_VERIFYPEER, false );

}

elseif ($key == "socks4") {

curl_setopt ( $ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4 ); // socks4

}

elseif ($key == "socks5") {

curl_setopt ( $ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5 ); // socks5

}

else {

curl_setopt ( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );

}

curl_setopt ( $ch, CURLOPT_TIMEOUT, 60 );

curl_setopt ( $ch, CURLOPT_CONNECTTIMEOUT, 60 );

curl_setopt ( $ch, CURLOPT_HEADER, false );

curl_setopt ( $ch, CURLOPT_RETURNTRANSFER, true ); // 返回网页内容

$result = curl_exec ( $ch );

}

proxy_socks4 = {'socks4': '218.58.52.158:1088'}

proxy_socks5 = {'socks5': '68.234.190.150:45454'}

# urllib2.URLError: [urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)]

handler = urllib2.ProxyHandler(proxy)

opener = urllib2.build_opener(handler)

f = opener.open(mimvp_url, timeout=30)

content = f.read()

print content

print len(content)

f.close()

opener.close()

opener = urllib.FancyURLopener(proxy)

content = f.read()

print content

print len(content)

f.close()

opener.close()

# socks4

def test_socks4(socks4, mimvp_url):

socks4_ip = socks4.split(":")[0]

socks4_port = int(socks4.split(":")[1])

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS4, socks4_ip, socks4_port)

socket.socket = socks.socksocket

content = urllib2.urlopen(mimvp_url, timeout=30).read()

print content

print len(content)

# socks5

def test_socks5(socks5, mimvp_url):

socks5_ip = socks5.split(":")[0]

socks5_port = int(socks5.split(":")[1])

socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, socks5_ip, socks5_port)

socket.socket = socks.socksocket

content = urllib2.urlopen(mimvp_url, timeout=30).read()

print content

print len(content)

if __name__ == "__main__":

# socks4

test_socks4(proxy_socks4['socks4'], mimvp_url)

# socks5

test_socks5(proxy_socks5['socks5'], mimvp_url)

@SuppressWarnings({ "serial" })

public static HashMap proxyMap = new HashMap() {

{

put("socks4", "113.7.118.112:2346");

put("socks5", "61.135.155.82:1080");

}

};

private static int proxy_property(String proxyType, String proxyStr) {

int dataLen = 0;

String proxy_ip = proxyStr.split(":")[0];

String proxy_port = proxyStr.split(":")[1];

Properties prop = System.getProperties();

}

}

// socks

if(proxyType.equals("socks4") || proxyType.equals("socks5")){

prop.setProperty("socksProxySet", "true");

prop.setProperty("socksProxyHost", proxy_ip);

prop.setProperty("socksProxyPort", proxy_port);

}

// ftp

if(proxyType.equals("ftp")){

prop.setProperty("ftp.proxyHost", proxy_ip);

prop.setProperty("ftp.proxyPort", proxy_port);

prop.setProperty("ftp.nonProxyHosts", "localhost|192.168.0.*");

}

//        // auth 设置登录代理服务器的用户名和密码

//        Authenticator.setDefault(new MyAuthenticator("user", "pwd"));

try{

URLConnection conn = url.openConnection();

conn.setConnectTimeout(30 * 1000);

InputStream in = conn.getInputStream();

InputStreamReader reader = new InputStreamReader(in);

char[] ch = new char[1024];

int len = 0;

String data = "";

while((len = reader.read(ch)) > 0) {

String newData = new String(ch, 0, len);

data += newData;

}

System.out.println("data : " + data);

dataLen = data.length();

} catch(Exception e) {

e.printStackTrace();

}

return dataLen;

}

static class MyAuthenticator extends Authenticator {

private String user = "";

private String password = "";

public MyAuthenticator(String user, String password) {

this.user = user;

this.password = password;

}

protected PasswordAuthentication getPasswordAuthentication() {

return new PasswordAuthentication(user, password.toCharArray());

}

}

#!/bin/bash

#

#

# 米扑代理示例:

#

# 米扑代理购买:

#

# 2015-11-09

# curl  支持socks

{'socks4': '101.255.17.145:1080'}

{'socks5': '82.164.233.227:45454'}

# wget 不支持socks

################### wget配置文件设置代理 ###################

vim ~/.wgetrc

use_proxy = on

wait = 30

################### 设置临时局部代理 ###################

# proxy no auth

# proxy auth

# 取消设置

################### 设置系统全局代理 ###################

# 修改 /etc/profile,保存并重启服务器

sudo vim /etc/profile # 所有人有效

sudo vim ~/.bashrc # 所有人有效

vim ~/.bash_profile # 个人有效

# proxy no auth

# proxy auth

source /etc/profile

source ~/.bashrc

source ~/.bash_profile

sudo reboot

'

' 米扑代理示例:

'

' 米扑代理购买:

'

' 2017-07-28

'

' 易语言的安装与开发,请参考米扑博客:

'

' 易语言的网络编程和代理示例,请参考米扑博客,附有源代码:

' 变量声明(表格)

.局部变量 代理地址, 文本型

.局部变量 目标网址, 文本型

.局部变量 代理用户名, 文本型

.局部变量 代理密码, 文本型

' 获取目标网址

.如果 (目标网址编辑框.内容 = “”)

.否则

目标网址 = 目标网址编辑框.内容

' 获取代理地址

.如果 (代理服务器编辑框.内容 = “”)

代理地址 = “139.59.99.113:8080”

.否则

代理地址 = 代理服务器编辑框.内容

.如果结束

输出调试文本 (“代理地址: ” + 代理地址)

' 设置代理方法1

超文本浏览框.跳转 (目标网址编辑框.内容, , )

' 设置代理方法2

输出调试文本 (网页_访问S (目标网址, , , , , , , , , , 代理地址, , ))

' 设置代理方式3(用户名 + 密码)

输出调试文本 (网页_访问S (目标网址, , , , , , , , , , 代理地址, 代理用户名, 代理密码))