P0F Python API Klien
Ini adalah klien API sederhana untuk P0F3, tersedia di http://lcamtuf.coredump.cx/p0f3/. Ini tidak kompatibel dengan versi 2.x atau 1.x. Mulai P0F dengan -s path/to/unix_socket Opsi.
Penggunaan Dasar:
Dari P0F Impor P0F, P0FException
data = tidak ada
p0f = p0f ("p0f.sock") # point ini ke soket yang didefinisikan dengan argumen "-s".
mencoba:
data = p0f.get_info ("192.168.0.1")
Kecuali P0Fexception, E:
# Kueri tidak valid dikirim ke P0F. Mungkin API telah berubah?
Cetak e
Kecuali KeyError, E:
# Tidak ada data yang tersedia untuk alamat IP ini.
Cetak e
Kecuali ValueError, E:
# P0F mengembalikan nilai konstan yang tidak valid. Mungkin API telah berubah?
Cetak e
Jika data:
cetak "pertama kali terlihat:", data ["first_seen"]
Cetak "Last Seen:", data ["last_seen"]
Integrasi Django
Lihat Contoh/django_models.py untuk model Django lengkap dari data yang dikembalikan oleh P0F.
Django Middleware tersedia di p0f.django.middleware .
Untuk menggunakan, tambahkan P0FSOCKET = "path/to/p0f_unix_socket" ke MIDDLEWARE_CLASSES proyek p0f.django.middleware.P0fMiddleware .
Middleware menambahkan atribut p0f ke semua permintaan yang masuk. request.p0f tidak ada jika koneksi ke P0F gagal atau P0F tidak mengembalikan data untuk alamat IP jarak jauh.
Bidang data
Bagian dari deskripsi ini disalin tanpa malu -malu dari http://lcamtuf.coredump.cx/p0f3/readme:
Secara default, bidang berikut diurai:
- Datetime: first_seen
- Datetime: last_seen
- Timedelta: Uptime
- int: uptime_sec
- Timedelta: up_mod_days
- Datetime: last_nat
- Datetime: last_chg
Selain itu, BAD_SW dan OS_MATCH_Q divalidasi. "ValueError" dinaikkan, jika nilai yang salah ditemui. Untuk semua bidang kosong, tidak ada yang digunakan sebagai ganti string atau konstanta kosong:
- uptime_min
- uptime_sec
- uptime
- up_mod_days
- last_nat
- last_chg
- jarak
- Bad_sw
- OS_NAME
- os_flavor
- http_flavor
- link_type
- bahasa
Parsing dan validasi ini dapat dinonaktifkan
p0f.get_info ("192.168.0.1", true)
Deskripsi Lengkap Bidang:
- int: first_seen - waktu unix (detik) dari pengamatan pertama host.
- int: last_seen - waktu unix (detik) dari lalu lintas terbaru.
- int: total_conn - Jumlah total koneksi yang terlihat.
- Int: Uptime_min - Sistem uptime yang dihitung, dalam hitungan menit. Nol jika tidak diketahui.
- int: up_mod_days - Interval pembungkus uptime, dalam beberapa hari.
- int: last_nat - waktu deteksi terbaru dari berbagi IP (NAT, load balancing, proxying). Nol jika tidak pernah terdeteksi.
- int: last_chg - Waktu ketidakcocokan OS individu terbaru (misalnya, karena multiboot atau penggunaan kembali IP).
- int: jarak - jarak sistem (berasal dari ttl; -1 jika tidak ada data).
- int: bad_sw - p0f berpikir agen pengguna atau string server tidak akurat. Nilai 1 berarti perbedaan OS (mungkin karena proksi), sedangkan 2 berarti ketidakcocokan langsung. Catatan: Jika agen pengguna tidak ada sama sekali, nilai ini tetap di 0.
- int: OS_MATCH_Q - OS Match Kualitas: 0 untuk pencocokan normal; 1 untuk fuzzy (misalnya perbedaan TTL atau DF); 2 untuk tanda tangan generik; dan 3 untuk keduanya.
- String: OS_NAME - Nama OS yang paling cocok yang cocok. Jika OS tidak diketahui, OS_NAME adalah string kosong. Catatan: Jika host pertama kali terlihat menggunakan sistem yang diketahui dan kemudian beralih ke yang tidak diketahui, bidang ini tidak diatur ulang.
- String: OS_FLavor - Versi OS. Mungkin kosong jika tidak ada data.
- String: http_name - Aplikasi http yang paling baru diidentifikasi (misalnya 'firefox').
- String: http_flavor - versi aplikasi http, jika ada.
- String: link_type - Jenis tautan jaringan, jika dikenali.
- String: Bahasa - Bahasa Sistem, jika dikenali.
Lisensi
Lihat lisensi.txt