2011-06-19 3 views

答えて

1

HTTPリクエストとして解析し、dpkt.UnpackErrorをキャッチして、HTTPリクエストでない場合はプログラムが死ぬことはありません。

例外がスローされなかった場合は、Requestオブジェクトの.methodを使用して、使用されたメソッドを取得できます。

1
>>> import dpkt 
>>> r = dpkt.Request('GET/HTTP/1.0\r\n\r\n') 

Finding the HTTP verb is easy:

>>> r.method 
"GET" 

難易HTTPリクエストデータを解析するがある場合は、理由dpkt.Request.unpackメソッドが例外をどのように扱うかの元のソースデータを取得することは不可能です。あなたがバイオリンを試みることができる

>>> data = 'GET/HTT' #malformed request 
>>> try: 
...  r = dpkt.Request(data) 
... except dpkt.UnpackError: 
...  print data.split()[0] 
... 
'GET' 
+0

dpktが常に要求を解析することができないので、間違っています。 –

+0

乱雑なリクエストに対処するための答えを広げました。 –

+0

はいいいえよろしくお願いいたします –

関連する問題