Wie entscheidet sich NMap zum Drucken einer Fortschrittszeile?

6533
Andrew Bolster

Überprüfung eines größeren Subnetzes als ich normalerweise tue; Mapping einer Cluster-Suite in einer Universität für ein Traffic-Mapping-Projekt (Erlaubnis erteilt), und ich habe mich etwas gefragt.

Normalerweise druckt NMap seinen Fortschritt regelmäßig, aber ich bin mir nicht sicher, was das "periodisch" ist, weil der elektronische Scan eine Zeile für jeden 100stel Prozent bis zu 1% gedruckt hat, dann eine bei 1,5% und nichts gesagt hat schon seit.

Ich vermute, dass sich das auf verschiedenen "Ebenen" ändert, aber hat jemand eine tatsächliche Antwort?

3
Haben Sie mit den folgenden Schaltern gesucht -v: Erhöhen Sie die Ausführlichkeitsstufe (verwenden Sie zweimal oder mehr, um einen größeren Effekt zu erzielen) -d [Stufe]: Legen Sie die Debugging-Stufe fest oder erhöhen Sie sie (Bis zu 9 sind sinnvoll) Christopher Wilson vor 14 Jahren 0
Ja, ich habe diese Flaggen bei verschiedenen anderen Anlässen benutzt, aber im Grunde habe ich heute Abend aus einer Laune heraus abgefeuert; Ich frage mich nur, was der Algorithmus für das Drucken ist. Ich konsultiere die Quelle jetzt, hoffentlich kann ich später antworten. Andrew Bolster vor 14 Jahren 0

2 Antworten auf die Frage

6
bonsaiviking

Sie können eine Statuszeile während eines laufenden Scans erhalten, indem Sie eine beliebige Taste drücken, die nicht an eine Funktion gebunden ist (drücken Sie, ?um eine Liste mit Bindungen anzuzeigen).

Alternativ können Sie die --stats-everyOption mit einem Zeitwert übergeben. Also das: nmap --stats-every 1mwürde jede Minute einen detaillierten (2-zeiligen) Status ausgeben. Diese Statuszeile wird auch in der XML-Ausgabedatei angezeigt.

4
Andrew Bolster

After diving through the NMap source (particularly timing.cc) this is what I have for default verbosity and debugging values.

  • If the scan is < 0.003% done, don't print
  • If there is < 1% done, use the following rules, but don't print ETA's
  • If there's < 30 seconds estimated time remaining in the scan, don't print
  • If there's no estimated time, don't print
  • Otherwise, if a previous estimate has been passed (ETA in the past) print a new one
  • Finally, if there's been a change in the ETA of more than 3 minutes, or 5% change in progress, print a new ETA

I think that's basically it but if anyone finds any more rules, feel free to add them in comments and I'll edit them in.