eBPF と BCC を使用して、受信しているパケットの IP アドレスを出力しています。
カーネルについては、ip_t -> dst; から出力するコードをプログラムしました。これは宛先のアドレスだと思います。
ユーザー空間については、バイトコードからユーザー アドレスを出力するコードをプログラムしました。
他の変数を何度もチェックして、プログラムがパケット ヘッダー内に格納されたデータの正しい値を表示するかどうかを確認しましたが、アドレス以外はすべて正常に機能しました。
したがって、ユーザーレベルでは次のようになります:宛先IPアドレス= 203.237.53.121
これは、サーバーに割り当てた静的 IP アドレスです。
ただし、ip_t -> dst を出力すると、次のようになります: 3421320703
なぜ出力が異なるのか理解できません。
特定の送信者IPアドレスなどからのみパケットを取得することを目的とするプログラムを最終的に構築しようとしています.
誰かが私を助けてくれたら、それは素晴らしいことです。
ありがとう :)