Hej alle!
Jeg er i gang med at kode et script til min side der detekter om besøgende kommer via proxy server, for at teste hvor godt mit script virker har jeg forsøgt at lave et script der besøger min side fra forskellige proxyer.
Kode:
- <?php
-
- $proxy_list = "111.68.103.39:3128@83.246.226.42:8080";
- $proxy_array = explode('@', $proxy_list);
- foreach($proxy_array as $cur_proxy)
- {
- $url = 'http://www.website.com/;
-
- OpenURL($url, "", $cur_proxy);
-
- //echo $cur_proxy.PHP_EOL;
-
- }
-
- function OpenURL($url, $post=array(), $proxy) {
- $headers[] = 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:13.0) Gecko/20100101 Firefox/13.0.1';
- $headers[] = 'Accept: application/json, text/javascript, */*; q=0.01';
- $headers[] = 'Accept-Language: ar,en;q=0.5';
- $headers[] = 'Connection: keep-alive';
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
- curl_setopt($ch, CURLOPT_VERBOSE, TRUE);
- curl_setopt($ch, CURLOPT_PROXY, $proxy);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
- if(count($post)>0) {
- curl_setopt($ch, CURLOPT_POST, TRUE);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
- }
- curl_setopt($ch, CURLOPT_COOKIEFILE, '/tmp/curl.cookie');
- curl_setopt($ch, CURLOPT_COOKIEJAR, '/tmp/curl.cookie');
- $data = curl_exec($ch);
- return($data);
- }
-
- ?>
Mit problem er at scriptet desværre kun bruger den første loadet proxy så ville høre om nogle kender en god metode til at "clear" curl bufferen så den næste proxy bliver taget i brug.
På forhånd tak!