Мне нужно программно определить, открыт ли данный порт на сервере, на котором выполняется мой скрипт, из внешнего мира. Я работаю в предположении, что единственный надежный способ определить это, принимая во внимание как прослушивание портов, так и любые установленные брандмауэры, состоит в том, чтобы внешняя служба пыталась установить связь с портом.
Итак, мой вопрос состоит из двух частей:
- Это первоначальное предположение правильно? Нужно ли полагаться на внешнюю службу, чтобы надежно обнаруживать открытые снаружи порты?
- Предполагая, что да к 1, какие варианты, которые предоставляют бесплатный API? Я посмотрел на canyouseeme.org и ping.eu, но ни один из них не предоставляет API. Я мог бы размещать на тех же страницах, которые эти сайты используют для своих служб на основе HTML, и анализировать ответ HTML, но это, очевидно, не идеально.