Как обнаружить брандмауэр в Windows?
-
22-07-2019 - |
Вопрос
Моему приложению необходимо отправить запрос GET на веб-сайт, и я хотел бы иметь возможность знать, блокируется ли он брандмауэром, и попросить пользователя добавить исключение.
Как я могу узнать, что мой запрос get не удался из-за брандмауэра, а не из-за чего-то другого?
Решение
Если это хороший брандмауэр, то вы не сможете.Среди других опций брандмауэр может:
- ответьте одним из нескольких вариантов ICMP сообщения, указывающие на то, что пункт назначения недоступен, или
- автоматически отмените запрос, что приведет к таймауту.
Разумный вариант - объяснить, почему приложению не удалось получить доступ к веб-сайту, и предоставить несколько полезных советов:
No response from www.site.com: * Your computer may not be connected to the Internet. * The site may be down. * The site may be blocked by a firewall.
The network indicated that www.site.com is not accessible: * Helpful messages go here.
Важным моментом является проведение различия, возможно, лучше, чем я сделал выше, между типы о неудаче, и о причины позади них.Например, шаги по устранению неполадок "нет ответа" будут отличаться от шагов по устранению неполадок "устройство сообщило мне, что оно не прослушивает этот порт".
Другие советы
Попробуйте получить доступ к Интернету за короткий промежуток времени ... Если команда не выполняется, вы можете предположить, что на машине установлен брандмауэр, который требует взаимодействия с пользователем. Р>
Если брандмауэр исправен, вы не можете его обнаружить. Р>
Использовать Win32 Firewall API (классический)