2017-09-21 4 views
1

Beim Erfassen von Paketen unter Windows 7 x64 scheinen Zeitstempel keine Float-Genauigkeit zu haben. Der Code ist unten angegeben.scapy: Zeitstempel mit Float-Genauigkeit bei Sniff-Paketen

from scapy.all import sniff 
pkts = sniff(count=10) 
pkts[0].time 
-> for higher precision output 
print('%.6f'%pkts[0].time) 

Ausgang

1506009934 
1506009934.000000 

irgendwelche Ideen, wie präzise Werte für die Zeitstempel zu bekommen?

+0

Wenn Sie 'drucken (type (pkts [0] .time))' was bekommen Sie? –

+0

Sie sind direkt am Punkt gibt es mir als Antwort. Aber wie korrigiert man das? –

+0

Ich weiß nicht "scapy" und ich kann das "time" -Attribut in der Dokumentation nicht finden, also weiß ich nicht, welche Einheiten es verwendet. Entschuldigung, ich kann nicht helfen. –

Antwort

1

Dies wurde in der Entwicklungsversion von Scapy behoben. Holen Sie es von der official repository und Ihr Code sollte die Ergebnisse geben, die Sie erwarten.

+0

Ich habe die feste Version ausprobiert. Leider führt dies zu vielen anderen Problemen. So wie die Ausgabe nicht lesbar ist, während Pyreadline bereits installiert ist. Daher komme ich ohne aktuelles Update auf die Version 2.3.3 zurück. Die aktualisierte Version löst beim Start einen Fehler aus.TypeError: Nicht alle Argumente wurden während der Formatierung der Zeichenfolge konvertiert Aus der Datei error.py, Zeile 76 'notiert –

+0

Dann haben Sie ein Problem, das völlig unabhängig von Ihrer Frage ist und wahrscheinlich behoben werden kann. Öffnen Sie ein Problem im GitHub des Projekts! (und die vollständige Stack-Trace buchen). – Pierre

+0

Das habe ich schon gemacht. Danke für die Empfehlung. –