PHP和旋转代理

前端之家收集整理的这篇文章主要介绍了PHP和旋转代理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有人尝试使用旋转代理?这有多容易实现?它运作良好吗?请您的体验

PS:我看到像“how to make php script use a list of proxies”这样的问题收集了很多弊端.你能在-1之前解释一下吗?

—— 2017年3月4日更新——-

我去过那里,发现最好的解决方案是:

如果你没有专用服务器或至少有一个vps和一点点耐心,请不要费心阅读帖子的其余内容……

1 – 从源代码安装Squid 3.2(查看下面的注释)
2 – 在squid.conf中添加20个左右的ip列表(费用约25美元)
3 – 使用新功能ACLrandom旋转传出IP.

这样你就不需要在PHP脚本上旋转ip列表了,相反,你将连接到同一个ip(例如:192.168.1.1:3129),但是可见的传出ip(tcp_outgoing_address)将在每个请求基于随机设置.

您需要使用’-enable-http-violation’编译squid 3.2,以使其成为精英匿名代理.

一步一步安装:

yum -y groupinstall 'Development Tools'
yum -y install openssl-devel
mkdir /meus
cd /meus
wget http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.13.tar.gz
tar -xvf squid-3.2.13.tar.gz
cd squid-3.2.13
./configure -prefix=/squid32 '--enable-removal-policies=heap,lru' '--enable-ssl' '--with-openssl' '--enable-linux-netfilter' '--with-pthreads' '--enable-ntlm-auth-helpers=SMB,fakeauth' '--enable-external-acl-helpers=ip_user,ldap_group,unix_group,wbinfo_group' '--enable-auth-basic' '--enable-auth-digest' '--enable-auth-negotiate' '--enable-auth-ntlm' '--with-winbind-auth-challenge' '--enable-useragent-log' '--enable-referer-log' '--disable-dependency-tracking' '--enable-cachemgr-hostname=localhost' '--enable-underscores' '--enable-build-info' '--enable-cache-digests' '--enable-ident-lookups' '--enable-follow-x-forwarded-for' '--enable-wccpv2' '--enable-fd-config' '--with-maxfd=16384' '-enable-http-violations'
make
make install

示例squid.conf(在本例中为/squid32/etc/squid.conf):

#this will be the ip and port where squid will run
http_port 5.5.5.5:33333 # change this ip and port ...

#Extra parameters on squid.conf to make an elite proxy

request_header_access Allow allow all 
request_header_access Authorization allow all 
request_header_access WWW-Authenticate allow all 
request_header_access Proxy-Authorization allow all 
request_header_access Proxy-Authenticate allow all 
request_header_access Cache-Control allow all 
request_header_access Content-Encoding allow all 
request_header_access Content-Length allow all 
request_header_access Content-Type allow all 
request_header_access Date allow all 
request_header_access Expires allow all 
request_header_access Host allow all 
request_header_access If-Modified-Since allow all 
request_header_access Last-Modified allow all 
request_header_access Location allow all 
request_header_access Pragma allow all 
request_header_access Accept allow all 
request_header_access Accept-Charset allow all 
request_header_access Accept-Encoding allow all 
request_header_access Accept-Language allow all 
request_header_access Content-Language allow all 
request_header_access Mime-Version allow all 
request_header_access Retry-After allow all 
request_header_access Title allow all 
request_header_access Connection allow all 
request_header_access Proxy-Connection allow all 
request_header_access User-Agent allow all 
request_header_access Cookie allow all 
request_header_access All deny all 

via off
forwarded_for off
follow_x_forwarded_for deny all

acl vinte1 random 1/5 
acl vinte2 random 1/5
acl vinte3 random 1/5
acl vinte4 random 1/5
acl vinte5 random 1/5

tcp_outgoing_address 1.1.1.1 vinte1 # fake ip's,replace with yours
tcp_outgoing_address 1.1.1.2 vinte2
tcp_outgoing_address 1.1.1.3 vinte3
tcp_outgoing_address 1.1.1.4 vinte4
tcp_outgoing_address 1.1.1.5 vinte5

tcp_outgoing_address 1.1.1.6 # this will be the default tcp outgoing address

使用squid代理示例PHP CURL请求:

$proxy = "1.1.1.1:33333";
$useragent="Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1";
$url = "https://api.ipify.org/";

$ch = curl_init();
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,15);
curl_setopt($ch,CURLOPT_HTTP_VERSION,'CURL_HTTP_VERSION_1_1' );
curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,1);
curl_setopt($ch,CURLOPT_PROXY,$proxy);
curl_setopt($ch,CURLOPT_PROXYUSERPWD,'USER:PASS');
curl_setopt($ch,CURLOPT_USERAGENT,$useragent);
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,CURLOPT_FOLLOWLOCATION,CURLOPT_SSL_VERIFYPEER,0);
$result=curl_exec ($ch);
curl_close ($ch);
echo $result

有用的链接
鱿鱼3.2资料来源:http://www.squid-cache.org/Versions/v3/3.2/squid-3.2.13.tar.gz
Rotating_three_IPs:http://wiki.squid-cache.org/ConfigExamples/Strange/RotatingIPs#Example:_Rotating_three_IPs_based_on_time_of_day
AclRandom:http://wiki.squid-cache.org/Features/AclRandom
在CentOS 5.3 – http://www.guldmyr.com/blog/installing-squid-3-2-on-centos-5-3/上安装Squid 3.2
为Squid添加密码:How to set up a squid Proxy with basic username and password authentication?

我发现这是最可靠和最安全的旋转代理方式,因为您不依赖第三方代理提供商,您的信息(密码,数据等)将更安全.起初设置起来可能听起来有点困难,但它会在你花费的每一秒内得到回报,GL 原文链接:https://www.f2er.com/php/134596.html

猜你在找的PHP相关文章