私は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. トランスポート層のプロトコル名と番号をマッピングする方法はありますか?
- 6. 発信者の情報をWeb層からEJB層に渡すにはどうすればいいですか?
- 7. Tensorflow/Tflearnで隠れ層ノードの値を取得するにはどうすればよいですか?
- 8. 多層テストオブジェクトを作成するにはどうすればよいですか?
- 9. トランスポート、ネットワーク、データリンク層機能がどのように信頼性を達成していますか?
- 10. トランスポート層はどこで動作しますか?
- 11. Genicamトランスポート層
- 12. etcdノードがハートビートを送信するときの基礎となるトランスポート層プロトコルは何ですか
- 13. WebRTC:トランスポート層で動作するSFUはありますか?
- 14. DNSがトランスポート層プロトコルとしてUDPを使用する理由は?
- 15. インターネット層またはトランスポート層でチェックサムが実行されましたか?
- 16. ビュー階層からビューコントローラを削除するにはどうすればよいですか?
- 17. Cでディレクトリリストを取得するにはどうすればよいですか?
- 18. Web層とサービス層の検証が重複しないようにするにはどうすればよいですか?
- 19. pandas pivot_tableとdataframeスタイルで階層テーブルを保存するにはどうすればよいですか?
- 20. TCP/IP ACK送信者:トランスポート層またはアプリですか?
- 21. 親子階層を持つレベルから大部分と子孫を取得するにはどうすればよいですか?
- 22. 投稿要求のIDを中間層から最上位層に渡してヘッダ位置201に返すにはどうすればよいですか?
- 23. レイヤ3(ネットワーク層)はどのようにIPアドレスを認識しますか?
- 24. MongoDBサービス層をテストするためにmoqを使用するにはどうすればよいですか?
- 25. アンドロイドMVP - モデルからネットワーク層をどのように呼び出すべきですか?
- 26. laravelでwherebetweenを使用して年齢層を検索するにはどうすればよいですか?
- 27. ケファでシファールを使って1層のニューラルネットを訓練するにはどうすればよいですか?
- 28. J2EE Webアプリケーションのサービス層からDAOメソッドを呼び出すにはどうすればいいですか?
- 29. トランスポート層セキュリティ(TLS)の例?
- 30. WCFトランスポート層のセキュリティ問題