2016-11-09 16 views
1

私は私に私のマシンに送信されるすべてのIPパケットを取得するために、次のコードを持っている:生ソケットからIPパケットを受信

import socket 

rs = socket.socket(socket.AF_INET, socket.SOCK_RAW, socket.IPPROTO_TCP) 
    while True: 
     print rs.recvfrom(65565) 

私は私のコンソール

にプリントアウトし、このような何かの複数行を取得
('E \x004tC\x00\x007\x06\x99\x97\xd8:\xdb\xee\xc0\xa8\x00\xf8\x01\xbb\xa3\xb6\xb9\x1cmavT\x14\xbd\x80\x10\x01^\xa6W\x00\x00\x01\x01\x08\n,k\xe0*\x01+\xf4{', ('216.58.219.238', 0)) 

私はこれはIPパケットですが、このデータをどのように解釈するのかわかりません。私はこれを解剖する方法を知りたいですか?

答えて

1

あなたはあなたの例のデータのパケット、以下解剖されたIPパケットを分析するためにscapyを使用することができます。

>>> b = 'E\x004tC\x00\x007\x06\x99\x97\xd8:\xdb\xee\xc0\xa8\x00\xf8\x01\xbb\xa3\xb6\xb9\x1cmavT\x14\xbd\x80\x10\x01^\xa6W\x00\x00\x01\x01\x08\n,k\xe0*\x01+\xf4{' 
>>> c = IP(b) 
>>> c.show() 
###[ IP ]### 
    version= 4L 
    ihl= 5L 
    tos= 0x20 
    len= 52 
    id= 29763 
    flags= 
    frag= 0L 
    ttl= 55 
    proto= tcp 
    chksum= 0x9997 
    src= 216.58.219.238 
    dst= 192.168.0.248 
    \options\ 
###[ TCP ]### 
    sport= https 
    dport= 41910 
    seq= 3105647969 
    ack= 1985221821 
    dataofs= 8L 
    reserved= 0L 
    flags= A 
    window= 350 
    chksum= 0xa657 
    urgptr= 0 
    options= [('NOP', None), ('NOP', None), ('Timestamp', (745267242, 19657851))] 
関連する問題