Ребят, приветствую. В общем ситуация в следующем. Есть сервис - мой, через который пользователи проходят авторизацию на стороннем ресурсе. Админ этого ресурса, поругался что все с одного IP, мультиакк и прочее. Я ему предложил, что буду работать через прокси, и он любезно согласился. Теперь пытаюсь реализовать все это. Я думал будет проще, но столкнулся со следующими трудностями:
1) Сначала я попытался сграбить прокси, от части получалось - но раз через раз, а если срабатывает, то медленно. Местами 504 вызывает, хотя таймауты стоят. Регулярками сделал проверку, видит он сайт или нет. И т. д.
2) Подумал, ну да ладно, куплю подписку прокси. Вставил 50 проксей, от их скушал все - и не на одной сайт даже не показал. Вообще отлично. (регулярка работает, проверял)
Так вот, где брать прокси для таких целей, какие нужны? Как реализовывают? Люди парсят тонны страниц, а мне нужно малость. Порядка 400-700 авторизаций в день на первых порах. А авторизованные - уже в куках на месяц, но не об этом.
Пожалуйста, направьте заблудившегося.
Это скрипт, по которому пытаюсь обратиться:
function post_sp($url, $post, $refer, $us, $auth = 1){
global $CONNECT;
$ch_proxy = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `login` = '$us'"));
$ch_proxy = $ch_proxy['proxy'];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.109 Safari/537.36");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie/sp/".$us.".txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie/sp/".$us.".txt");
while ( $auth == 0 ) {
$filename= 'resource/proxy/proxy.php';
$txt = file($filename);
$txt2 = array_slice($txt, 0, 1);
$txt3 = implode('', $txt2);
file_put_contents($filename, array_slice($txt, 1));
$proxy_auth = $txt2[0];
curl_setopt($ch, CURLOPT_PROXY, $proxy_auth);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt($ch, CURLOPT_TIMEOUT, 9);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 6);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);
preg_match('/регулярка/', $result, $res);
if ( $res[0] == 'регулярка' ) {
$auth = 1;
mysqli_query($CONNECT, "UPDATE `users` SET proxy='$proxy_auth' WHERE login='$us'");
$ch_proxy = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `login` = '$us'"));
$ch_proxy = $ch_proxy['proxy'];
} else {
mysqli_query($CONNECT, "UPDATE `users` SET proxy='' WHERE login='$us'");
$ch_proxy = mysqli_fetch_assoc(mysqli_query($CONNECT, "SELECT * FROM `users` WHERE `login` = '$us'"));
$ch_proxy = $ch_proxy['proxy'];
}
}
curl_close($ch);
return $result;
}