質問

私のアプリはウェブサイトにGETリクエストを行う必要があり、ファイアウォールでブロックされているかどうかを知り、ユーザーに例外を追加するように依頼したいです。

他の何かではなく、ファイアウォールが原因でget要求が失敗したことを確認するにはどうすればよいですか?

役に立ちましたか?

解決

優れたファイアウォールの場合は、できません。他のオプションの中でも、ファイアウォールは次のことができます。

  • いくつかの異なる ICMP メッセージのいずれかで返信し、宛先にアクセスできないことを示す、または
  • リクエストをサイレントに破棄し、タイムアウトになります。

合理的なオプションは、アプリがWebサイトにアクセスできなかった理由を説明し、いくつかの有用な提案を提供することです:

    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を使用(クラシック)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top