Я пытаюсь сделать какой-то анализатор протокола инициации сеанса. Я использую модуль pyshark
для python, который предлагает мне некоторые функции для перехвата пакетов из интерфейса. Дело в том, что есть функция с именем sniff()
, которая, когда я даю параметр packet_count=0
, проверяет пакеты на неопределенный срок, пока я не остановлю всю программу.
Что я хочу знать, если есть способ остановить функцию cap.sniff()
и получить cap._packets
(который является списком), а затем запустить остальную часть программы.
Вот код, который я сделал:
def sniffsip():
cap = pyshark.LiveCapture(interface='Ethernet')
cap.sniff(packet_count=0)#This is function sniff() that checks for packets
udp_packets = []
for i in cap._packets:
j = cap._packets.index(i)
if cap._packets[j].transport_layer == 'UDP' and cap._packets[j].highest_layer == 'SIP':
udp_packets.append(cap._packets[j])
return udp_packets