Swego czasu napisałem bardzo prostą metodę która z listy dostępnych adresów IP proxy sprawdzała czas odp. i zwracała listę aktywnych adresów posortowaną od najszybszych.
/**
* Metoda zwracająca teoretycznie najszybsze proxy z dostępnej listy
*
* @return array Posortowana tablica proxy wg. czasów odpowiedzi.
*/
private function __getProxy() {
'189.112.3.87:3128',
'189.112.3.86:3128',
'216.218.133.217:80',
'85.114.141.191:80',
'211.155.81.99:80',
'61.144.14.99:80',
'118.195.65.247:80',
'184.169.162.184:80',
'217.74.174.243:3128',
'103.31.0.245:8080'
);
foreach ($proxy as &$val) {
$fp = @fsockopen($val[0
], $val[1
], $errno, $errstr, 5
); $time = $time_end - $time_start;
if(!$fp) {
continue;
}
$checkedProxy[round($time, 5
)*1000000
] = implode($val, ':');
}
return $checkedProxy;
}