2017-05-11 4 views
0

Ich habe einige binäre Befehle (die ich als Hex darstellen), die ich an ein Remote-Gerät senden muss (es ist ein eingebettetes Datenerfassungsgerät) und beobachten Sie die Antwort.Senden einer Hex-Zeichenfolge an eine remote über netcat

Es ist einfach, um es mit netcat

nc -v 192.168.200.34 19000 

und es sitzt dort glücklich wie eine Muschel zu verbinden.

Der Hex-String Ich brauche Terminal eingeben und senden dann ist so etwas wie:

02: 45: 31: 38: 03: 34: 43: 0d: 0a

Wo 02 ist STX, 03 ist ETX und so weiter.

Aber wenn ich dies in mein Netcat-Fenster eintippe (mit oder ohne Leerzeichen, mit oder ohne Doppelpunkte), überträgt netcat es als ASCII.

Die ganze Literatur ist glücklich, mir zu erzählen, wie man einen Hexdump vom entfernten Gerät erfasst, aber nicht, wie man binäre/hex Daten zum entfernten Gerät überträgt.

Ist das eine einfache Sache, oder fehlt mir etwas?

Antwort

0

echo -n -e "\ x02 \ x45 \ x31 \ x38 \ x03 \ x34 \ x43 \ x0d \ x0a" | nc < -IP-addr-> < -port-no->

  • Die -n Unterdrückt die nachlauf Neue-Zeile ausgibt.
  • Das -e ermöglicht die Interpretation von Backslash-Escapes - ermöglicht uns, Hex-Codes zu senden.
  • 'x' vor jedem Zeichen gibt an, dass das Byte hexadezimal ist.
+0

Willkommen bei Stack Overflow! Während dieses Code-Snippet die Frage lösen kann, hilft eine Erklärung, die Qualität Ihres Posts zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen. Bitte versuchen Sie auch nicht, Ihren Code mit erläuternden Kommentaren zu überladen, da dies die Lesbarkeit sowohl des Codes als auch der Erklärungen verringert! –

+0

Vielen Dank für Ihre Eingaben @RamKoti. Ich fügte so viele Erklärungen wie möglich hinzu. – rahul1205

Verwandte Themen