我正在尝试从从其他设备接收的数据包中提取数据。我已经隔离了要从中提取数据的数据包,但无法确定如何提取所需的数据。我正在使用pyshark获取数据包,但这不允许我实际查看该数据。当我在wireshark时,我可以看到数据。我要提取的数据用红色圈出。Wireshark
这是我的python代码。
import pyshark
capture=pyshark.LiveCapture(interface='wlan0', display_filter='frame.len>190 and upd.port==1700')
for i in capture:
print(i)它显示了wireshark减去纬度和经度坐标后的所有相同信息。
发布于 2020-11-22 06:50:41
我想要一个示例PCAP文件,但大多数人都不想分享真实世界的数据。如果没有PCAP文件,我不能给你一个完整的答案,但我可以给你一个95%的答案。
这是我解决你的问题的方法:
import pyshark
capture = pyshark.LiveCapture(interface='your_interface')
for raw_packet in capture.sniff_continuously():
# filter only UDP packet that have a frame length greater
# than 190 and that have a port number of 1700.
if hasattr(raw_packet, 'udp') and int(packet.frame_info.cap_len) > 190 and packet[packet.transport_layer].srcport == '1700':
# Get the details for the packets by accessing
# _all_fields and _all_fields.values()
field_names = raw_packet.udp._all_fields
field_values = raw_packet.udp._all_fields.values()
for field_name in field_names:
for field_value in field_values:
# you can add another filter here to get your
# lat & long coordinates
print(f'{field_name} -- {field_value}')
# if you need to access the packet data you need to do this,
# but it might come back in hex, which will need to be decoded.
# if "DATA" in str(packet.layers):
# print(packet.data.data)如果您在过滤您要查找的数据包时遇到任何问题,请联系我们。如果你能分享一个PCAP示例,我会调整我的答案。
我在GitHub上有一个名为的文档和代码示例,您可能会发现它很有用。
https://stackoverflow.com/questions/64808226
复制相似问题