Ich habe die beiden Hauptversionen von Netcat ausprobiert: GNU und BSD. (meins ist BSD-Version).
In der GNU-Version funktioniert der Befehl $ nc -l -p 12345 einwandfrei, aber mit BSD kann die Option -l (listen) nicht in Verbindung mit -p (lokaler Port) verwendet werden.
Ich verstehe nicht, warum es einen solchen Unterschied zwischen diesen beiden Versionen gibt? Wenn ich in der BSD-Version die Option -p verwende, wird automatisch -l aufgerufen (listen)?
Vielen Dank ;-)
Ps: https://bugs.launchpad.net/ubuntu/+source/netcat-openbsd/+bug/590925/comments/3 -p unterscheidet sich zwischen den beiden. Die OpenBSD-Version verwendet es, um einen Quellport für Remoteverbindungen festzulegen, während die herkömmliche NC es verwendet, um den lokalen Port anzugeben, an dem sie im Listen-Modus empfangsbereit ist.
-l
den Port zum Abhören, wird also überhaupt-p
nicht benötigt. Ich bin mir nicht sicher, was-p
ohne geht-l
. Ich weiß nicht, warum es einen Unterschied gibt.netcat-traditional
für GNUnetcat-openbsd
undnetcat
für BSD.Antworten:
In der BSD-Version nimmt -l den Port zum Abhören, sodass -p überhaupt nicht benötigt wird. Ich bin mir nicht sicher, was -p ohne -l macht. Ich weiß nicht, warum es einen Unterschied gibt. - icktoofay <- Der Kredit für die Lösung geht an diesen Kerl ... aber ich glaube nicht, dass er einen Account bei SU hat, nur SO.
quelle