PDA

Просмотр полной версии : [Проблемка] Php + sockets


ex3me
26.03.2009, 18:20
Имеется такой код:

<?php

@set_time_limit (0);

$total = 0;

$file1 = "log.txt";

$f1 = fopen($file1,'r');

$str_array = array();

$tokens = "|";

while($str=fgets($f1,1024)) {

$tokenized = strtok($str, $tokens);
$tokenized = strtok($tokens);
$str_array[] = trim($tokenized);

}

$str_array = array_unique($str_array);

echo "<pre>";

foreach ($str_array as $item) {


echo scan($item) . " " . $item . "\r\n";

$total++;

}

echo "</pre>";
echo "Total: " . $total;

function scan ($hs)

{

$port = 445;
$time_conn = 2;

$connect = @fsockopen ($hs, $port, $errno, $errstr, $time_conn);

if ($connect == TRUE) {

return "<font color='green'>[valid]</font>";

}

else if ($connect == 0) {

return "<font color='red'>[invalid]</font>";

}

}

?>

Занимается парсингом логов вида
23.03.09 : 17:14:10 | 92.63.241.73 | 92.63.241.73 | 92.63.241.73 |
с последующим чеком порта 445 (валид/невалид)

На локалхосте все норм. На хосте (не фри) выдает 502 bad gateway

Может что не так делаю =\ И предложите как оптимизировать данный код (мб парсинг по-другому сделать или еще что-то)

mailbrush
26.03.2009, 18:34
ex3me, хостеру пиши а не нам. У меня все работает отлично на хосте/локалхосте.

ex3me
26.03.2009, 19:37
mailbrush, oO тебя разбанили? ))))))))

А если по теме: просто интересно почитать советы знающих людей. я нуб в пхп =)

Pashkela
26.03.2009, 20:17
502 Bad Gateway. Пользователь при этом не имеет возможности просмотра ресурсов выбранного Web-сайта. Обычно такое сообщение является следствием проблем, касающихся работы прокси-сервера, DNS-сервера или хостинг-сервера, где непосредственно размещается Web-сайт, который запрашивает пользователь.


вот и всё. Проблемы на стороне сервера, если у тебя с интернетом всё в порядке

И потом у тебя там даже паузы нет - шквальная проверка локально и на серваке - немножко разные вещи. Попробуй не for each, а хотя бы один оттестить, также лучше вписать в начало скрипта:

@set_time_limit(0);
@ini_set("display_errors","1");

т.к. хз, может на этом сервере отключены сокеты, а ты этого можешь не увидеть из-за, допустим, отключенных ошибок

Плюс у хостера может стоять фаер, который рубит все запросы такого вида, специально

ex3me
26.03.2009, 21:24
Pashkela, проверил сокеты включены. Проблема дейстивительно в том, что хостер блочит запросы =\