#php #port #fsockopen
Вопрос:
Я использую fsockopen()
для проверки открытых портов. Кажется, что он работает, когда передается активный IP-адрес, но, похоже, всегда возвращает ресурс, когда параметр IP-адреса пуст или равен НУЛЮ при использовании порта 80 или 22. Что означает этот особый случай?
fsockopen("", 80, $err_code, $err_msg, 1)
возвращает ресурс
fsockopen("123", 80, $err_code, $err_msg, 1)
возвращает значение FALSE
Я бы ожидал, что оба вернутся ЛОЖНЫМИ.
Комментарии:
1. Просто догадываюсь, но я подозреваю, что это по умолчанию
localhost
.2. Когда я пытаюсь это сделать, я получаю это:
PHP Warning: fsockopen(): php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known in php shell code on line 1
3. Какая версия PHP? Я протестировал с 7.4.
4. Убедитесь, что порт не используется другим программным обеспечением, таким как apache.
5. Я пробовал php 5.6, 7.4 и 8.0, все они выдают ту же ошибку, что и Бармар.