私はlibpcapライブラリを使ってCのpcapファイルから情報を解析している割り当てに取り組んでいます。私は、ソース/宛先IPアドレス、TCP/UDPポート、およびソース/宛先イーサネットアドレスなどのデータを取得する方法を理解しています。次に、ネットワークとトランスポート層のプロトコルから統計情報を取得し、プロトコルごとにパケット数を取得します。私はこれにアクセスする方法を理解しているようには思えず、誰かが私を正しい方向に向けることを望んでいるのではないかと思います。他の情報は/usr/include/netinet.hの中のさまざまなデータ構造から集められているので、これもそこにあるはずですが、やはり私は少し失われています。Cでpcapからネットワーク層とトランスポート層プロトコルを取得するにはどうすればよいですか?
0
A
答えて
1
あなたはすでに回答があるようです... IPはネットワーク層のプロトコルなので、IPアドレスを見つけることができればIPパケットを数えることができます。同様に、TCPとUDPはトランスポート層プロトコルです。パケット内にTCP/UDPポートがある場合は、どのプロトコルを使用しているパケット数がわかっています。コールバック関数で
0
/* define/compute ip header offset */
ip = (struct sniff_ip*)(packet + SIZE_ETHERNET);
size_ip = IP_HL(ip)*4;
if (size_ip < 20) {
printf(" * Invalid IP header length: %u bytes\n", size_ip);
return;
}
switch(ip->ip_p) {
case IPPROTO_TCP:
/* define/compute tcp header offset */
tcp = (struct sniff_tcp*)(packet + SIZE_ETHERNET + size_ip);
size_tcp = TH_OFF(tcp)*4;
if (size_tcp < 20) {printf(" * Invalid TCP header length: %u bytes\n", size_tcp); return; }
bytes_tcp+=ntohs(ip->ip_len);
packets_tcp++;
break;
}
case IPPROTO_UDP:
bytes_udp+=ntohs(ip->ip_len);
packets_udp++;
break;
}
関連する問題
- 1. ICMPはトランスポート層プロトコルですか?
- 2. データリンク層とトランスポート層
- 3. トランスポート層は、データグラムパケットから送信元IPアドレスをどのように取得しますか?
- 4. トランスポート層のプロトコル名と番号をマッピングする方法はありますか?
- 5. 発信者の情報をWeb層からEJB層に渡すにはどうすればいいですか?
- 6. トランスポート層はどこで動作しますか?
- 7. インターネット層またはトランスポート層でチェックサムが実行されましたか?
- 8. ビュー階層からビューコントローラを削除するにはどうすればよいですか?
- 9. Cでディレクトリリストを取得するにはどうすればよいですか?
- 10. Web層とサービス層の検証が重複しないようにするにはどうすればよいですか?
- 11. レイヤ3(ネットワーク層)はどのようにIPアドレスを認識しますか?
- 12. トランスポート層セキュリティ(TLS)の例?
- 13. WCFトランスポート層のセキュリティ問題
- 14. MongoDBサービス層をテストするためにmoqを使用するにはどうすればよいですか?
- 15. C#でファイルから変更日を取得するにはどうすればよいですか?
- 16. C#で不明な列挙型から値を取得するにはどうすればよいですか?
- 17. C#でXML Webサービスから値を取得するにはどうすればよいですか?
- 18. iOS 5でネットワーク情報を取得するにはどうすればよいですか?
- 19. 重複したコードをプラットフォーム/層全体で処理するにはどうすればよいですか?
- 20. エンティティフレームワークを階層データで使用するにはどうすればよいですか?
- 21. odata v2で階層データを送信するにはどうすればよいですか?
- 22. View Controller階層でinterfaceOrientationプロパティを正しく設定するにはどうすればよいですか?
- 23. 階層構造のレコードでFileHelpersを使用するにはどうすればよいですか?
- 24. Rails 3.1で無限階層のhtmlツリーを作成するにはどうすればよいですか?
- 25. サービス層で入力を検証するにはどうすればよいですか
- 26. サービス層からのベースURLを取得
- 27. LINQを使用して、階層型XMLをPOCOにロードするにはどうすればよいですか?
- 28. 存在しないモジュールの階層を模擬するにはどうすればよいですか?
- 29. URLDownloadToFileがキャッシュから取得できないようにするにはどうすればよいですか?
- 30. ネットワーク層で動作するツール