2016-07-22 4 views
1

私は自分自身をクリアします:私は、パケットを送信するときsr()で してから答えを印刷し、それだけで私を与えています1つのパケット:(SR `差)`と私は<code>sr()</code>と<code>sniff()</code> との違いを知りたい `スニフ()` scapy

Received 1 packets, got 1 answers, remaining 0 packets 
[(<IP frag=0 ttl=64 proto=tcp dst=216.58.210.4 |<TCP sport=37945 dport=http seq=1 ack=1477254816 flags=A |<Raw load='GET /index.html HTTP/1.0 \n\n' |>>>, <IP version=4L ihl=5L tos=0x0 len=40 id=1338 flags= frag=0L ttl=128 proto=tcp chksum=0xe12d src=216.58.210.4 dst=192.168.233.128 options=[] |<TCP sport=http dport=37945 seq=1477254816 ack=28 dataofs=5L reserved=0L flags=A window=64240 chksum=0x5528 urgptr=0 |<Padding load='\x00\x00\x00\x00\x00\x00' |>>>)] 

しかし、私は、スニフと同じことを行うとき、私はたくさんより多くのパケットを得、そのうちの一つの答えとそのパケット私は尋ねた:

<Ether dst=00:0c:29:bb:8e:79 src=00:50:56:e9:b8:b1 type=0x800 |<IP version=4L ihl=5L tos=0x0 len=537 id=1339 flags= frag=0L ttl=128 proto=tcp chksum=0xdf3b src=216.58.210.4 dst=192.168.233.128 options=[] |<TCP sport=http dport=37945 seq=1477254816 ack=28 dataofs=5L reserved=0L flags=PA window=64240 chksum=0x98df urgptr=0 options=[] |<Raw load='HTTP/1.0 302 Found\r\nCache-Control: private\r\nContent-Type: text/html; charset=UTF-8\r\nLocation: http://www.google.co.il/index.html?gfe_rd=cr&ei=_geSV8u1C6Xb8AeaxJCoDQ\r\nContent-Length: 271\r\nDate: Fri, 22 Jul 2016 11:48:14 GMT\r\n\r\n<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">\n<TITLE>302 Moved</TITLE></HEAD><BODY>\n<H1>302 Moved</H1>\nThe document has moved\n<A HREF="http://www.google.co.il/index.html?gfe_rd=cr&amp;ei=_geSV8u1C6Xb8AeaxJCoDQ">here</A>.\r\n</BODY></HTML>\r\n' |>>>> 

をあなたが表示されます場合 - 秒私は尋ねたhtmlコードを持っています(それはそれを盗聴していました)が、最初はこれを持っていません。

答えて

0

sr()は、パケットを送受信します。この機能は特定のパケットを送信し、そのパケットのみに対する応答を探します。

sniff()は、IPアドレスまたは特定のソケットに向けられていない場合でも、スニッファとして機能し、イーサネット回線上のすべてのトラフィックを読み取ります。元のパケットを送信していました。これにより、ネットワーク上の他のトラフィックを見ることができます

+0

「どうやってAckメッセージではなく「sr」でHTTP回答を得ることができますか?出来ますか? – jony

+0

を 'sr()'とするとACKを受け取るはずです。次に、SYN/ACKを送信し、次にTCPペイロードを送信します – StephenG

関連する問題