私はlibpcapで遊んでいて、奇妙なことを見つけました。
出力の一部は次のとおりです。「From:src_addr、To:dst_addr」
1つのステートメント、つまりprintf( "From:%s、To:%s \ n"、inet_ntoa(ip_hdr-> ip_src)、inet_ntoa(ip_hdr-> ip_dst));で印刷する場合。印刷されたdst_addrは、印刷されたsrc_addrとまったく同じです。ただし、この行にブレークポイントを設定し、gdbを使用してip_srcとip_dstに格納されている値を調べると、それらは異なります。
2つのステートメントで記述されている場合、つまりprintf( "From:%s、"、inet_ntoa(ip_hdr-> ip_src)); printf( "宛先:%s \ n"、inet_ntoa(ip_hdr-> ip_dst)); その後、問題は解消され、出力のsrc_addrとdst_addrが異なります。