На CURL есть такой параметр CURLOPT_INTERFACE, который задает исходящий интерфейс.
curl_setopt($ch, CURLOPT_INTERFACE, "xxx.xxx.xxx.xxx");
Так же можно использовать прокси.
<?php include("zip.lib.php"); $name_zip = glob("gamezip/*.zip"); foreach ($name_zip as $th_zip) { $zip = new ZipArchive; if ($zip->open($th_zip) === TRUE) { $zip->extractTo('gamezip/'); $zip->close(); echo 'Архив '.$th_zip.' распакован<br />'; } else echo 'Не удалось распаковать архив '.$th_zip.'<br />'; } ?>
Скачать исходники (с zip.lib.php) - https://yadi.sk/d/okKHfs8JcvJzo
Посмотрите хостера евробайт. За полтора года использования ни разу в саппорт не написал.
Какая ОС стоит?
Недавно ставил 3proxy на 13 VPS с CentOS 6.x по этой инструкции http://supmag.ru/?p=380 (1 способ). Все норм установилось и работало.
Для установки Midnight Commander (mc) выполнить команду - yum install mc
ТС, сделал тестовый запрос, в постах не верно имена полей прописаны, должно быть так:
curl_setopt($ch, CURLOPT_POSTFIELDS,"username=".$login."&password=".$pass."&csrfmiddlewaretoken=".$key);
Пост запрос шлется на
https://instagram.com/accounts/login/
Тут с куками скорее всего, сделайте так:
curl_setopt($ch, CURLOPT_COOKIEJAR, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt'); curl_setopt($ch, CURLOPT_COOKIEFILE, $_SERVER['DOCUMENT_ROOT'].'/cookie.txt');
После открывайте нужную вам страницу с теме же куками и точно так же как выше написано.
Через CURL пробуйте передавать POST запрос
curl_setopt($ch, CURLOPT_POSTFIELDS, "post1=1&post2=2");
с приемом и передачей кук
curl_setopt($ch, CURLOPT_COOKIEJAR, getcwd()."/cookie.txt"); curl_setopt($ch, CURLOPT_COOKIEFILE, getcwd()."/cookie.txt");
Какие POST запросы и куда слать, а так же просмотр всех редиректов, если они будут посмотрите например через снифер плагин под названием HttpFox к браузеру FireFox.
Ни одного. Парсил без проксей со своего IP.
Скачайте дэмку и затестите, скрипт пишется за пол часа. Вот пример скрипта для того что бы понять как открывать страницы и брать его html код:
$a = file("mykey.txt");for ($i = 0; $i < count($a); $i++) { $browser->navigate("https://www.google.ru/search?q=".trim($a[$i])); $browser->wait_for(5,1); $kol = 0; if(preg_match('#Результатов: (.+?)<nobr>#is', $webpage->get_body(), $match)) $kol = $match[1];}
Немного проще вариант :)
$myxml = file_get_contents("sitemap.xml");preg_match_all("#<loc>(.+?)</loc>#i", $myxml, $match);$allurl = implode("\r\n", $match[1]);$fh = fopen("allurl.txt", "w+");fwrite($fh, $allurl);fclose($fh);echo $allurl."<h2>Готово</h2>";
Я повседневно его использую. Это аналог зеннопостера, только в нем пишется на php, что намного для меня удобнее, проще и функциональнее.
Если php знаете, ничего особо сложного в изучении не будет. Для ваших целей и дэмка подойдет. Единственное что он не запустится в несколько копий, придется виртуальные машины использовать.
Парсил с месяца два назад 4к запросов (40к страниц) из выдачи в 1 поток без задержек, ни разу капчи не было. Выпарсил за часов 8-16.