p0f3 api py
1.0.0
これは、http://lcamtuf.coredump.cx/p0f3/で入手可能なP0F3のシンプルなAPIクライアントです。バージョン2.xまたは1.xと互換性がありません。 -s path/to/unix_socketオプションでp0fを開始します。
基本的な使用法:
P0FからP0Fをインポート、P0fexceptionから
データ=なし
p0f = p0f( "p0f.sock")#これは、「-s」引数で定義されたソケットを指します。
試す:
data = p0f.get_info( "192.168.0.1")
p0fexceptionを除く、e:
#無効なクエリがP0Fに送信されました。たぶんAPIが変更されましたか?
印刷e
KeyErrorを除く、e:
#このIPアドレスではデータはありません。
印刷e
ValueRerrを除く、e:
#P0Fは無効な定数値を返しました。たぶんAPIが変更されましたか?
印刷e
データの場合:
「最初に見られた:」、データ["first_seen"]を印刷する
印刷「最後に見た:」、データ["last_seen"]]
P0Fで返されたデータの完全なDJANGOモデルについては、Examples/django_models.pyを参照してください。
Django Middlewareは、 p0f.django.middlewareで入手できます。
使用するには、 P0FSOCKET = "path/to/p0f_unix_socket"プロジェクトのsettings.pyに追加し、 p0f.django.middleware.P0fMiddlewareにMIDDLEWARE_CLASSESに追加します。
ミドルウェアは、すべての着信要求にp0f属性を追加します。 P0Fへの接続が失敗した場合、またはP0FがリモートIPアドレスのデータを返しなかった場合、 request.p0fはありません。
これらの説明の一部は、http://lcamtuf.coredump.cx/p0f3/readmeから恥知らずにコピーされています。
デフォルトでは、次のフィールドが解析されます。
さらに、 bad_swおよびos_match_qが検証されます。誤った値が発生した場合、「ValueError」が引き上げられます。すべての空のフィールドについて、空の文字列や定数の代わりに使用されるものはありません。
この解析と検証は無効にすることができます
p0f.get_info( "192.168.0.1"、true)
フィールドの完全な説明:
license.txtを参照してください