[PHP] ~100. sor után megáll.
Sziasztok.
Lenne egy kis gondom.
Van egy ip listám és szeretném őket rendszerezni.
Pl: weboldal fut rajta, védett-e (ne foglalkozzak vele) stb...
A netes források és a saját tudásból sikerült ezt a kódot elkészítenem.
A rendszerezés közben minden visszatérésre [200,401] csinál egy file-t. A probléma az lenne ,hogy a ~100 ip után megáll és tölt a végtelenbe. Mind localhoston mint szerveren. Valakinek valami ötlete ?
Kód:
<?php
ini_set('memory_limit', '2048M');
set_time_limit(0);
ini_set('max_execution_time', '7200');
$handle = @fopen("80.txt", "r");
if ($handle) {
while (($data = fgets($handle)) !== false)
{
$data = str_replace("\n", "", $data);
$data = str_replace("\r", "", $data);
$curl = curl_init($data);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERPWD, 'qwe:qwe');
curl_setopt($curl,CURLOPT_TIMEOUT,2);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_USERAGENT, 'Sample Code');
$response = curl_exec($curl);
$resultStatus = curl_getinfo($curl);
if($resultStatus['http_code'] == 401){$fb = fopen("fail.txt", "a"); fputs($fb,$data."\n"); fclose($fb);}
elseif($resultStatus['http_code'] == 200){$fc = fopen("200.txt", "a"); fputs($fc,$data."\n"); fclose($fc);}
}
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
$fb = fopen("kesz.txt", "a"); fputs($fb,"keszvan"); fclose($fb);
?>
LISTA
re: [PHP] ~100. sor után megáll.
Elsőre: megnézted azt az IP-t, aminél beadja a derekát a program? Lehet, hogy valami tök nem várt választ kapsz vissza vagy ilyesmi, és az tesz neki keresztbe.
re: [PHP] ~100. sor után megáll.
Most néztem ,hogy a kód valójában fut tovább csak egy csomó ideig nem kapott 200-as vagy 401-es választ most hogy betettem ,egy olyat amiben minden fájlbaírást amiben benne van amit eddig átnézet most már jó valójában fut rendesen köszönöm a segítséget.
re: [PHP] ~100. sor után megáll.
Nincs mit. Amúgy furcsa, mert a CURLOPT_TIMEOUT-t beállítottad 2 másodpercre, a manual szerint meg az a teljes curl végrehajtásnak a maximum ideje, tehát 2 mp után meg kellett volna haljon, és mennie kellett volna tovább a következő IP-re.
Lehet érdemes használni a CURLOPT_CONNECTTIMEOUT-t is párhuzamosan, azt is 2 secre belőni.