前言:
现在同学们对“python抓取app数据”都比较重视,兄弟们都想要学习一些“python抓取app数据”的相关文章。那么小编也在网摘上网罗了一些有关“python抓取app数据””的相关资讯,希望我们能喜欢,姐妹们一起来学习一下吧!【说明】
由于使用抓包工具抓取的数据太多太杂,不利于分析。若想抓取某个ip的某个端口的数据包并实时打印出来(来源数据和去往数据分开打印),可使用python+scapy.all模块抓取:抓取来源于某一端口的流量:src port 端口号,抓取去往某一端口的流量:src port 端口号,也可以同时来抓取来源和去往某个端口的流量:port 端口号
【代码:来源端口】
from scapy.all import *import timedef packet_callback(pkt): now_time = time.strftime('%Y-%m-%d_%H:%M:%S',time.localtime()) print ("抓取来源某一端口数据+++++++++++++++++++++++++%s++++++++++++++++++++++++"%now_time) try: print("时间:%s"%pkt.time) print('TTL:%s'%pkt[IP].ttl) #打印源IP:端口----->目的IP:端口 print("来源:%s:%s---->去往:%s:%s"%(pkt[IP].src, pkt.sport, pkt[IP].dst, pkt.dport)) except Exception as e: print ('异常',e) print ("数据包(发):") print (pkt.show()) try: print ("Raw数据:",pkt['Raw'].load) print ("Raw数据编码:",pkt['Raw'].load.decode('utf-8',errors='ignore')) except Exception as e: print ("无Raw数据:",e)if __name__=='__main__': print("显示网卡信息:\n",show_interfaces()) network_card = "ASIX AX88179 USB 3.0 to Gigabit Ethernet Adapter #3" port = "8090" print ("开始抓取数据") sniff(iface=network_card,prn=packet_callback,filter="src port %s"%port, count=0)
【代码:去往端口】
from scapy.all import *import timedef packet_callback(pkt): now_time = time.strftime('%Y-%m-%d_%H:%M:%S',time.localtime()) print ("抓取去往某一端口数据+++++++++++++++++++++++++%s++++++++++++++++++++++++"%now_time) try: print("时间:%s"%pkt.time) print('TTL:%s'%pkt[IP].ttl) #打印源IP:端口----->目的IP:端口 print("来源:%s:%s---->去往:%s:%s"%(pkt[IP].src, pkt.sport, pkt[IP].dst, pkt.dport)) except Exception as e: print ('异常',e) print ("数据包(收):") print (pkt.show()) try: print ("Raw数据:",pkt['Raw'].load) print ("Raw数据编码:",pkt['Raw'].load.decode('utf-8',errors='ignore')) except Exception as e: print ("无Raw数据:",e)if __name__=='__main__': print("显示网卡信息:\n",show_interfaces()) network_card = "ASIX AX88179 USB 3.0 to Gigabit Ethernet Adapter #3" port = "8090" print ("开始抓取数据") sniff(iface=network_card,prn=packet_callback,filter="dst port %s"%port, count=0)
【执行】
【测试结果】
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #python抓取app数据