メインコンテンツへスキップ

macOS版の制約

管理者権限が必須

パケットキャプチャは /dev/bpf* デバイスへのアクセスが必要で通常ユーザーからはアクセス出来ません。
起動時に管理者権限を付与する必要が有ります。

追加ドライバは不要

Windows版ではNpcapが必要になりますが、macOS版はlibpcap / BPFOS標準なので不必要です。

プロセス識別(v1.5)のmacOS固有の限界

実装方式:
    - Apple  libproc(非公開・変更されうる API)でポートとプロセスを照合
    - スナップショット方式(その瞬間のシステム状態を読む)

結果、次の様な状態が発生するとパケットを取りこぼしやすいです。
    - 短命な接続(一瞬で終わる通信)
    - 権限の高いシステムプロセス(ユーザースペースから見えない)
    - 複数プロセスが同じソケットを共有している場合
      (最初に見つかったプロセスだけ表示)

macOS 独自よりの正確な実装は実施されていないです。
    - pktap: パケットにプロセス名・PID を付与できる疑似インターフェース
      (tcpdump -i pktap など)Sniffnet は標準 libpcap 経由のため未使用。
    - Network Extension / カーネルフックは Apple  entitlement が必要。
      Sniffnet は「軽量・非侵襲」を優先して採用していない。