在选定的块中获取mysql数组并通过socks

时间:2016-04-18 08:11:32

标签: php mysql arrays socks

我有这个简单的代码。我面临的问题是,我在一个名为 Domain 的表中有一个网站列表,我想获取一个数组中的所有行(或者可能选择行),然后将这个数组拆分为60行块。例如1块= 60行。然后检查1个袜子下的每个块。在1个袜子下检查60行后,获得第2个Chunk并获得其他袜子并继续操作直到结束。

由于我不能两次使用1个袜子,我需要提供建议,以检查是否有两次使用相同的袜子。 (从db获取socks可能吗?在检查后在db中添加袜子?)

这是以下代码......

    <?php

$proxies = array();

$proxies[] = '193.165.37.134:45301';
$proxies[] = '82.124.237.100:44356';

if (isset($proxies)) {  // If the $proxies array contains items, then

$proxy = $proxies[array_rand($proxies)];    // Select a random proxy from the array and assign to $proxy variable

}

$timeout = 5;
$splited = explode(':',$proxy); // Separate IP and port
if($con = @fsockopen($splited[0], $splited[1], $errorNumber, $errorMessage, $timeout)) 
{

$ip = $splited[0];
$port = $splited[1];

$sql = "SELECT * FROM domain ";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){

$id = $row['id'];
$url = $row['url'];

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_PROXY, $ip);
curl_setopt($ch, CURLOPT_PROXYPORT, $port);
curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);                                                                      
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);                                                             
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60);  
$result = curl_exec($ch);

$status = do_some_work($result);

$sql = "UPDATE domain SET status = '$status' WHERE id = '$id' ";
mysql_query($sql);

}
}
?>``

任何帮助将不胜感激。感谢

0 个答案:

没有答案