trceroute スクリプトを作成する必要がありますが、その試みが正しいかどうかわかりません。
現在、私はそのようにしています(間違っているか不器用な場合は修正してください):
- ip- および udpheader の構造体を取得しました
- チェックサム機能
- 2 つのソケットを開く: 1 つは SOCK_RAW モードで UDP パケットを送信するため (ttl を操作するため)、もう 1 つはルーターから ICMP 応答を受信するためです。
- sendto() を使用して UDP パケットを送信する
- ICMP 回答を受信して処理する方法がわからない
すべてのヘッダーを自分で定義する必要がある sock_raw を使用するよりも、TTL を変更するより快適な方法はありますか? ICMP sock を開くとき、socket() にはどのパラメータを使用すればよいですか? ICMP 回答を受け取る方法は?