|
|
|
| Помогите советом как чекать соксы и выводить только рабочие ip.
вывожу я так
<table border=0 bordercolor=#ffffff width=50%>
<tr bgcolor=#000000>
<td align=center><b><font>IP adddress</font></b></td>
</tr>
<?
for ($i = 0; $i < mysql_num_rows($r); $i++)
{
$time = time() - mysql_result($r, $i, 3);
$id = mysql_result($r, $i, 0);
$info = mysql_result($r, $i, 4);
$info = str_replace(";", "\\n", $info);
if ($time > $bot_timeout)
{
mysql_query("delete from stat where id='$id'");
continue;
}
if ($search_country)
{
if (!is_integer(strpos(strtoupper(mysql_result($r, $i, 2)), strtoupper($search_country))))
break;
}
echo "<tr bgcolor=#d9d9d9>"
."<td align=center>".mysql_result($r, $i, 1)."</td>";
}
?>
</table>
|
получается список "адрес:порт" в таблице "IP adddress", ну тут все понятно.
Вот думаю как реализовать эту проверку и с помощью какого online сервиса это сделать. | |
|
|
|
|
|
|
|
для: adminn
(14.01.2008 в 01:20)
| | Может я что не так понял, но разве целесообразно проверять эти IP через он-лайн сервисы? Есть IP и порт, шли заголовки сокетами или CURLом и проверяй валидность ответа... | |
|
|
|
|
|
|
|
для: Loneliness
(14.01.2008 в 01:37)
| | что то за НАТ'ом остается, из всех 40% нормальных получается | |
|
|
|
|
|
|
|
для: adminn
(14.01.2008 в 05:53)
| | решил реализовать все через fsockopen()
вот:
$nosok = explode(":", mysql_result($r, $i, 1)); //разбил на адрес и порт
if(fsockopen($nosok[0], $nosok[1], $errno, 25) =!){ //проверяю
echo fsockopen(); //вывожу
}
|
я косяк, да?) помогите разобраться. | |
|
|
|
|
|
|
|
для: adminn
(15.01.2008 в 01:59)
| | Поправьте если я не прав, но мне кажется что так:
<?php
$ip = '127.0.0.1';
$port = 8080;
$connlimite = 25;
define('NL',"\r\n");
$fs = fsockopen($ip,$port,$errno,$errstr,$connlimite);
if(!$fs)
print '['.$errno.']'.$errstr.'<br/>';
else
{
fputs($fs,'GET http://softtime.ru/index.php HTTP/1.0'.NL.
'User-Agent: '.NL.
'Host: softtime.ru'.NL.
'Connection: Close'.NL.NL);
$answer='';
while(!feof($fs))$answer.=fgets($fs);
print $answer.'<br/>';
fclose($fs);
}
?>
|
| |
|
|
|
|
|
|
|
для: Sobachka
(15.01.2008 в 17:56)
| | Sobachka спб все работает, подобные примеры я видел на сайтах.
раньше я выводил список так mysql_result($r, $i, 1) получалось сразу ip:port, теперь я разбил его для работы с fsockopen() так $nosok = explode(":", mysql_result($r, $i, 1));
получилось $nosok[0] - ip , $nosok[1] - port
мне нужно , чтоб также циклично выводился список проверенных прокси перед этим пройдя условия проверки через конструкции if ... не могу ни как это реализовать, прошу помогите. | |
|
|
|
|
|
|
|
для: adminn
(16.01.2008 в 02:59)
| | этот пример ты врядли мог где-то видеть...я написал его сам... в чём проблема то? встроить мой код в твой, если коннект не произведён,или ответ не получен то значит прокси не валидный...
я не привержинец давать прямые ответы... натолкнуть на мысль я могу с удовольствием, но за Вас решать Вашу задачу,писать полностью весь код - это не ко мне! | |
|
|
|
|
|
|
|
для: Sobachka
(17.01.2008 в 01:27)
| | Sobachka спасибо, буду читать , стараться.
По этим функциям я все понял, только вот не как не могу понять как мне выводить проверенные адреса в цикле( ну не как.. как получить переменную чекнутого ip, я только начинаю учить язык (по мере возможности). | |
|
|
|
|
|
|
|
для: adminn
(17.01.2008 в 01:38)
| |
<?php
function check($ip,$port,$connlimite)
{
$nl="\r\n";
$fs = fsockopen($ip,$port,$errno,$errstr,$connlimite);
if(!$fs)
return FALSE;
else
{
fputs($fs,'GET http://softtime.ru/index.php HTTP/1.0'.$nl.
'User-Agent: proxy_checker'.$nl.
'Host: softtime.ru'.$nl.
'Connection: Close'.$nl.$nl);
$answer = '';
while(!feof($fs))$answer.=fgets($fs);
fclose($fs);
if($answer<>'')return TRUE;
}
}
$conlimt=25;
for ($i = 0; $i < mysql_num_rows($r); $i++)
{
list($ip,$port) = explode(":", mysql_result($r, $i, 1));
if(check($ip,$port,$conlimt) == TRUE)print $ip.':'.$port.'<br/>';
}
?>
|
правда я реально не уверен что всё правильно, пусть меня поправить кто нить кто лучше знает работу с сокетами...
Но всё же постарайтесь понять что я написал,а не тупо скопировать!!! | |
|
|
|
|
|
|
|
для: Sobachka
(17.01.2008 в 01:54)
| | Спасибо. Мне самому очень интересно, буду тестировать. | |
|
|
|