プログラムが Linux マシンで実行されている場合、そのプログラムがファイアウォールの通過を許可されているポートをスキャンする方法はありますか? たとえば、プログラマーがチャット システムを作成したいが、ユーザーのファイアウォールによって着信接続へのアクセスが拒否されていないポートをプログラムが知る必要がある場合、コードでこれを確認する方法はありますか? ファイアウォールが着信接続から同じポートをブロックしている場合でも、プログラムはソケットをポートにバインドすることに失敗することはありません。開いているファイアウォール ポートを確認する方法はありますか?
補足: これは純粋に教育目的のためのものであり、悪意はありません。明確にするために、私はチャット システムを作成しています。テスト中、ファイアウォールの通過を許可してポートを手動で開くまで、デスクトップからラップトップに接続できませんでした。これは、プログラマーのコードがユーザーに実行を要求するものとは異なり、私には少しずれているように思えました。言うまでもなく、このコードを使用している少数の人々を危険にさらしたくありません (ポートを永続的に開いたままにする場合)。そのため、着信 TCP 接続に対して既に開いているポートを利用する方法を見つける方が適しているようです。
補足: すべてのクライアントが fedora を実行しています