Почему пустой IP-адрес для fsockopen() на порту 80 возвращает ресурс

#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, все они выдают ту же ошибку, что и Бармар.