ローカル ネットワークで smb 共有を検索してマウントする C プログラムを作成しています。見つかった smb サーバーのホスト名を取得するために、udp nbns パケットをサーバーに送信します。パケットは正しく、サーバーは応答します。これを確認するためにwiresharkを使用しています。送信したパケットと nbstat によって送信されたパケットを比較し、サーバーから返されたパケットも比較しました。ID とチェックサムを除いて、それらは同一です。
nbstat を使用して要求を行うと、応答パケットは適切に受信されますが、自分のパケットへの応答はおそらくファイアウォールによってブロックされます。サーバーからの応答を受信した後、クライアント マシンは icmp "Destination unreachable (Port unreachable)" メッセージをサーバーに送信します。ファイアウォールが送信していると思われます。
これはwiresharkからの出力です
No. Time Source Destination Protocol Length Info
12 29.870065 192.168.1.245 192.168.1.21 NBNS 92 Name query NBSTAT *<00><00.......
13 29.870494 192.168.1.21 192.168.1.245 NBNS 253 Name query response NBSTAT
14 870 259. 192.168.1.245 192.168.1.21 ICMP 281 宛先に到達できません (ポートに到達できません)
返信が通過できるようにするにはどうすればよいですか?