Wie schreibe ich interaktiv eine \ r \ n-terminierte Abfrage in netcat?

6128
Vi.
$ nc example.com 80 GET / HTTP/1.1 Host: example.com   HTTP/1.1 200 OK ... 

Es funktioniert, Zeilentrennzeichen ist nur 0Ahier statt erforderlich 0D0A.

Wie gebe ich eine 0D0A-separierte Abfrage in netcat ein?

Es ist leicht, einmalig printfmanuell \r\nzu todostippen oder einen Perl-Oneliner zu implementieren und zu pfeifen nc, aber vielleicht gibt es einen einfachen Weg, den ich vermisse?

6

2 Antworten auf die Frage

9
meuh

Mein netcathat eine Option -Coder durch stdin --crlfzu ersetzen .\n\r\n

Alternativ hängt es davon ab, welches Terminal Sie verwenden. Meine Standardeinstellungen sind zu sehen durch:

$ stty -a ... lnext = ^V; ... 

Dies zeigt das nächste Zeichen für die Eingabe control-V. Wenn Sie control-vgefolgt von eingeben, control-mwird ein Wagenrücklauf eingefügt (im Gegensatz zu einer neuen Zeile, die Sie erhalten, wenn Sie die Taste returnoder enterdrücken).

Netter Fund, wusste nicht, was von "-C". cYrus vor 8 Jahren 0
Senden Sie ein beliebiges Byte interaktiv durch netcat, z. B. "0x01", "0x02" usw. Ist es möglich ?. Jaime Hablutzel vor 6 Jahren 0
1
cYrus

Sie können einen String an ncfolgende Pipe übergeben :

echo -ne 'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n' | nc example.com 80 

Überprüfen Sie mit:

$ echo -ne 'GET / HTTP/1.1\r\nHost: example.com\r\n\r\n' | hd 00000000 47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a |GET / HTTP/1.1..| 00000010 48 6f 73 74 3a 20 65 78 61 6d 70 6c 65 2e 63 6f |Host: example.co| 00000020 6d 0d 0a 0d 0a |m....| 00000025 
Wie mache ich das interaktiv, indem ich eine weitere Anfrage eingebe, nachdem ich die Antwort gesehen habe? Vi. vor 8 Jahren 0