ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   Как пустить скрипт через прокси? (https://forum.antichat.io/showthread.php?t=204251)

nail 15.05.2010 17:46

Как пустить скрипт через прокси?
 
нужно вот этот скрипт пустить через прокси?

m0Hze 15.05.2010 17:55

Примерно так. Замениться ф-цию post на подобие этой:
PHP код:

function post($url, $post, $cookieID,$socks=false,$v=5)
{
    
$ch = curl_init($url);
    
curl_setopt($ch, CURLOPT_USERAGENT,
        
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
    if (
$post <> null) {
        
curl_setopt($ch, CURLOPT_POST, 1);
        
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }
    if (
$socks) {
        
curl_setopt($exec, CURLOPT_PROXYTYPE, ($v == 5 ?  CURLPROXY_SOCKS5 :  CURLPROXY_SOCKS4));
        
curl_setopt($exec, CURLOPT_PROXY, $socks);
    }
    
curl_setopt($ch, CURLOPT_REFERER, "http://vkontakte.ru/");
    
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd() . '/' . $cookieID . '.c');
    
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd() . '/' . $cookieID . '.c');
    
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
$result = curl_exec($ch);
    return 
$result;
} 

И вызов ф-ции производить вот так:
PHP код:

$result = post('http://vkontakte.ru/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$autorization[0].'&pass='.$autorization[1],$autorization[2],'1.2.3.4:8952',4); 

Будет работать с носками 4-5 версий.

nail 15.05.2010 18:44

работа через прокси не идет,заменил post и функцию на ваши:

PHP код:

<?php

$bd      
= 'bd.txt';
$divider = ':';
$log     = '1';
set_time_limit(0);

 function 
post($url, $post, $cookieID,$socks=false,$v=5)
{
    
$ch = curl_init($url);
    
curl_setopt($ch, CURLOPT_USERAGENT,
        
"Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.4) Gecko/2008102920 AdCentriaIM/1.7 Firefox/3.0.4");
    if (
$post <> null) {
        
curl_setopt($ch, CURLOPT_POST, 1);
        
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }
    if (
$socks) {
        
curl_setopt($exec, CURLOPT_PROXYTYPE, ($v == 5 ?  CURLPROXY_SOCKS5 :  CURLPROXY_SOCKS4));
        
curl_setopt($exec, CURLOPT_PROXY, $socks);
    }
    
curl_setopt($ch, CURLOPT_REFERER, "http://vkontakte.ru/");
    
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd() . '/' . $cookieID . '.c');
    
curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd() . '/' . $cookieID . '.c');
    
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    
$result = curl_exec($ch);
    return 
$result;
}  
    function 
write($text)
     {
       
$fh = fopen("log.txt", "a+");
       
$success - fwrite($fh, $text);
       
fclose($fh);      
     }
 
  
$bd      = file($bd);
  
$ammount = count($bd);

  for(
$i = 0; $i < $ammount; $i++)
   {
        
$autorization = explode($divider,$bd[$i]);
    
$autorization[2] = trim($autorization[2]);

    
$result = post('http://vkontakte.ru/',null,$autorization[2]);

    if (
preg_match('#l">E(.*?)<#i',$result))
     {

        
$result = post('http://vkontakte.ru/login.php','act=login&success_url=&fail_url=&try_to_login=1&to=&vk=&email='.$autorization[0].'&pass='.$autorization[1],$autorization[2],'94.41.3.250:1080',4); 

       
$tempLog = ($log == '1') ? write("[".date("H:i")."] Авторизация ($autorization[2])\r\n") : null;
     }
    else
     {
       
$tempLog = ($log == '1') ? write("[".date("H:i")."] Работа через cookie ($autorization[2])\r\n") : null;
      }
     }

 
?>


может где-то ошибка в скрипте?или надо чтото в конфигурацию php добавить?(в апач)

m0Hze 15.05.2010 18:59

У меня ваш прокси тоже не работает. А по сути, вот вам шпаргалка по curl.
http://phpclub.net/manrus/f/curl-setopt.html
Тут найдете все что нужно http://phpclub.net/manrus/f/curl-setopt.html, но тут получится работа только http прокси, настройки для работа с socks есть выше. А вообще, вот вам полноценная, работающаяя ф-ция на соксах.
PHP код:

function curl($url, $socks = false, $version = 5, $post = false, $cookie = false)
{
    
$ch = curl_init(); // инициализируем Curl
    
curl_setopt($ch, CURLOPT_URL, $url); // открываемая страница
    
curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    
curl_setopt($ch, CURLOPT_HEADER, 0);
    
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // вернуть ответ сервера в переменную, а не выводить

    // Работа через прокси
    
if ($socks) {
        
curl_setopt($ch, CURLOPT_PROXYTYPE, ($version == 5 ? CURLPROXY_SOCKS5 :
            
CURLPROXY_SOCKS4));
        
curl_setopt($ch, CURLOPT_PROXY, $socks);
    }
    if (
$post) {
        
curl_setopt($ch, CURLOPT_POST, 1);
        
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
    }
    if (
$cookie) {
        
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    }
    
$page = curl_exec($ch);
    
curl_close($ch);
    return (
$page);
} 


nail 15.05.2010 21:08

попробовал рабочий сокс,всеравно не работает,просто белая страница и потом тайм-аут


Время: 17:54