コンテンツにスキップ

pyshark

  • Ubuntu 20.04
$ python3 -m venv --copies ~/.virtualenvs/pyshark/
$ ln -s ~/.virtualenvs/pyshark/bin/activate
$ . activate
(pyshark)$ pip install pyshark
(pyshark)$ sudo setcap 'CAP_NET_RAW+eip CAP_NET_ADMIN+eip' ~/.virtualenvs/pyshark/bin/python
(pyshark)$ python
>>> import pyshark
>>> capture = pyshark.LiveCapture(interface='eno1', use_json=True)
>>> for packet in capture.sniff_continuously(packet_count=10000):
...     print('Just arrived:', packet)

Note

python3をシンボリックリンクではなくコピーすることでsetcapの範囲をvenvで使っているpythonだけにしてる

Warning

pysharkは裏で /usr/bin/tshark -l -n -T json -r - --no-duplicate-keys を叩いて結果を拾っているので、tsharkプロセスが欲しくない場合には別の手段を用いる


最終更新日: 2021-06-06 09:29:57