У меня есть скрипт, который сканирует порты на наличие открытых прокси-серверов. Проблема в том, что если он сталкивается с программой входа в систему (в частности, с telnet), то он там висит навсегда, так как не знает, что делать, и в итоге сервер закрывает соединение.
Простым решением было бы создать кучу дел. Если телнет, сделай это. Если SSH, сделай это. Если что-то еще, бла-бла-бла. Я хотел бы получить зонтичное решение, так как сценарий не является для меня высоким приоритетом.
Сценарий, как и сейчас, доступен по адресу http://parkrrr.net/socks/scan.phps
В небольшом масштабе (на странице может быть в среднем 15 посещений в день) это хорошо, но в большем масштабе я бы беспокоился о большом количестве открытых зомби-сокетов.
Замена! $ Strpos не работает, поскольку серверы могут вернуть больше информации, чем вы запрашивали (заголовки, реклама и т. Д.).
Принятие только фиксированного количества байтов (в отличие от добавления до EOF, которое он делает сейчас) из $ fgets также не работает. Я уверен, что это где он застрял:
while (! feof ($ fp)) {
$ Данные = fgets ($ ∥f∥p, 512).
}
Но что я могу сделать? Любые другие предложения / предупреждения также приветствуются.