2011-02-09 8 views
23

मैं अजगर के लिए एक पाइप लाइब्रेरी की सिफारिश के लिए पूछना चाहता हूं। मैं .pcap फ़ाइल पार्सिंग पर प्रोजेक्ट कर रहा हूं। मैंने Google की खोज की और पाइलीबैप पाई। क्या वहां कुछ और है? आप कौन सी मुक्ति पसंद करते हैं और क्यों?पाइप पायथन पुस्तकालय?

धन्यवाद।

+0

हाय पीएसएस, तो आपने अपनी परियोजना कैसे पूरी की? किसने आपसे संपर्क किया? –

उत्तर

16

scapy की कोशिश करो। यह पैकेट निरीक्षण, हेरफेर और सृजन के लिए एक बहुत ही शक्तिशाली कार्यक्रम है।

आप इसे build your own tools पर उपयोग कर सकते हैं।

+0

http://github.com/phaethon/scapy पर स्कैपी का नया संस्करण देखें। यह पायथन 3 के साथ संगत है और इसमें नई कार्यक्षमता भी शामिल है। –

+4

यहां ध्यान रखें कि पाइथन पुस्तकालयों के लिए असामान्य रूप से स्कैपी, जीपीएलवी 2 है - नोट लाइब्रेरी छूट नहीं है इसलिए टाइपिंग आयात स्कैपी आपके कोड को जीपीएलवी 2 बनने के लिए मजबूर करती है - यदि आप इसके साथ ठीक हैं, तो इसके लिए जाएं। – Hal

14

मैंने कोशिश की और फिर पैकी की कोशिश की। मैं पपीकी चुनता हूं क्योंकि मेरा उपयोग एक उदाहरण के समान था जिसे मैंने गुगलिंग पाया।

http://snipplr.com/view/3579/live-packet-capture-in-python-with-pcapy/ (या एक ही कोड के नीचे पेस्ट करके देखें)

import pcapy 
from impacket.ImpactDecoder import * 

# list all the network devices 
pcapy.findalldevs() 

max_bytes = 1024 
promiscuous = False 
read_timeout = 100 # in milliseconds 
pc = pcapy.open_live("name of network device to capture from", max_bytes, 
    promiscuous, read_timeout) 

pc.setfilter('tcp') 

# callback for received packets 
def recv_pkts(hdr, data): 
    packet = EthDecoder().decode(data) 
    print packet 

packet_limit = -1 # infinite 
pc.loop(packet_limit, recv_pkts) # capture packets 
5

मैं आपको पायशार्क का उपयोग करने की सलाह देता हूं। यह tshark के लिए रैपर है। यह सभी tshark फिल्टर, डीकोडर lib, ... और उपयोग करने में आसान भी समर्थन करता है!

import pyshark 
cap = pyshark.FileCapture('/root/log.cap') 
cap 
>>> <FileCapture /root/log.cap> 
print cap[0] 
Packet (Length: 698) 
Layer ETH: 
     Destination: BLANKED 
     Source: BLANKED 
     Type: IP (0x0800) 
Layer IP: 
     Version: 4 
     Header Length: 20 bytes 
     Differentiated Services Field: 0x00 (DSCP 0x00: Default; ECN: 0x00: Not-ECT (Not ECN-Capable Transport)) 
     Total Length: 684s 
     Identification: 0x254f (9551) 
     Flags: 0x00 
     Fragment offset: 0 
     Time to live: 1 
     Protocol: UDP (17) 
     Header checksum: 0xe148 [correct] 
     Source: BLANKED 
     Destination: BLANKED 
    ... 
dir(cap[0]) 
['__class__', '__contains__', '__delattr__', '__dict__', '__dir__', '__doc__', '__format__', '__getattr__', '__getattribute__', '__getitem__', '__getstate__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_packet_string', 'bssgp', 'captured_length', 'eth', 'frame_info', 'gprs-ns', 'highest_layer', 'interface_captured', 'ip', 'layers', 'length', 'number', 'pretty_print', 'sniff_time', 'sniff_timestamp', 'transport_layer', 'udp'] 
cap[0].layers 
[<ETH Layer>, <IP Layer>, <UDP Layer>, <GPRS-NS Layer>, <BSSGP Layer>] 
....