【Ethernet】車載ネットワーク その48【npcap③】

【Ethernet】車載ネットワーク その48【npcap③】 車載ネットワーク

バックナンバーはこちら。
https://www.simulationroom999.com/blog/In-vehicle-network-backnumber/

はじめに

npcapでパケット取得で使用したAPI。

ネットワークデバイスのリストの構築するAPI。
ネットワーク上のパケットを見るためにパケットキャプチャハンドルを取得するAPI。
次のパケットを読み込んで、成功/失敗の指示を返すAPI。

など。

登場人物

博識フクロウのフクさん

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

npcapでパケット取得で使用したAPI

フクさん
フクさん

じゃー、前回動かしたパケット取得で使用したAPIを列挙する。

太郎くん
太郎くん

おー!

フクさん
フクさん

以下のAPIを使ってた。

  • pcap_findalldevs
  • pcap_open_live
  • pcap_next_ex

それぞれのAPI概要

太郎くん
太郎くん

で、それぞれどんな意味合いになるの?

フクさん
フクさん

まぁほぼ名前のまんまなんだけど。

  • pcap_findalldevs:ネットワークデバイスのリストの構築。
  • pcap_open_live:ネットワーク上のパケットを見るためにパケットキャプチャハンドルを取得。
  • pcap_next_ex:次のパケットを読み込んで、成功/失敗の指示を返す。
太郎くん
太郎くん

うーん、概要を見てもイマイチわからんのは・・・。

フクさん
フクさん

まぁリストの構築とかハンドルとかって言葉が並んでるだけだから
分からない方が普通かもねー。

太郎くん
太郎くん

なんだ!
じゃー特に僕が悪いってわけじゃないねー。

フクさん
フクさん

(悪くないとは言ってないが・・・。ま、いっか。)

API利用フロー

太郎くん
太郎くん

利用する流れも、列挙された順番になるの?

フクさん
フクさん

そうだね。
デバイス名が分かってればpcap_findalldevsは使わなくて良いとかはあるけど。
少なくとも
pcap_open_live、pcap_next_exは使うかな?
pcap_next_exの代わりにpcap_loopってAPIを使うこともあるが
これはそのうち説明しよう。

太郎くん
太郎くん

こっそり知らないAPIを混ぜるのやめてよー!!

フクさん
フクさん

APIの数はもっといっぱいあるんだからしようがないでしょー!
全部列挙しても分からないだろうからうまく抽出してるんだよ。

太郎くん
太郎くん

とりあえず、

①pcap_findalldevsでデバイス名を検索。
②ユーザ側が使用するデバイスを決定。
③使用するデバイスに対して、pcap_open_liveでopen。
④pcap_next_exでパケット一個ずつを読み出し

って認識でOK?

フクさん
フクさん

なんだ。
意外と理解してるじゃん。

太郎くん
太郎くん

前回、一回動作させたからねー。
そこら辺の経験との組み合わせかなー。

フクさん
フクさん

じゃー、次回からさらに詳細に。

まとめ

フクさん
フクさん

まとめだよ。

  • パケット取得で使用したAPIを列挙。
    • pcap_findalldevs:ネットワークデバイスのリストの構築。
    • pcap_open_live:ネットワーク上のパケットを見るためにパケットキャプチャハンドルを取得。
    • pcap_next_ex:次のパケットを読み込んで、成功/失敗の指示を返す。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました