2011-03-07 14 views
5

पायथन में टीसीपी पैकेट को फिर से इकट्ठा कैसे करें? क्या इसके लिए कोई मौजूदा उपकरण है?पायथन में टीसीपी पैकेट को फिर से इकट्ठा कैसे करें?

धन्यवाद! :-)

+0

डेटा स्रोत से पुनः इकट्ठा? सटीक उत्तर के लिए –

+0

अधिक जानकारी की आवश्यकता है। – lunixbochs

उत्तर

12

टीसीपी दुबारा जोड़ना आप pynids http://jon.oberheide.org/pynids/ की तरह कुछ का उपयोग करना होगा प्रदर्शन करने के लिए यहाँ एक उदाहरण है।

आप पाइलीबैप, डीपीकेटी या स्कैपी का उपयोग करके अपना खुद का निर्माण भी कर सकते हैं।

टीसीपी रीसाइस्प्ले बहुत बढ़िया मामलों के साथ बहुत मुश्किल है। यदि आपको एक मजबूत समाधान की आवश्यकता है तो मैं इसे स्वयं करने की सलाह नहीं दूंगा।

4

हाँ ... टीसीपी प्रोटोकॉल गारंटी देता है कि एप्लिकेशन लेयर केवल पैकेट को इकट्ठा करेगा और क्रम में। अब यदि आप आईपी पैकेट को पार्स करने वाले कुछ निम्न स्तर के इंटरफेस के निर्माण के बारे में बात कर रहे हैं, तो आप RAW sockets के साथ एक स्टैब ले सकते हैं जो आपको आईपी हेडर जानकारी तक पहुंच प्रदान कर सकता है।

import socket 

# the public network interface 
HOST = socket.gethostbyname(socket.gethostname()) 

# create a raw socket and bind it to the public interface 
s = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_IP) 
s.bind((HOST, 0)) 

# Include IP headers 
s.setsockopt(socket.IPPROTO_IP, socket.IP_HDRINCL, 1) 

# receive all packages 
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_ON) 

# receive a package 
print s.recvfrom(65565) 

# disabled promiscuous mode 
s.ioctl(socket.SIO_RCVALL, socket.RCVALL_OFF) 

अजगर सॉकेट मॉड्यूल प्रलेखन से बेशर्म उठा लिया: http://docs.python.org/library/socket.html

+0

कृपया ध्यान दें कि यह उदाहरण केवल विंडोज पर काम करेगा – lunixbochs

संबंधित मुद्दे