利用paramiko的demo_simple.py进行日志记录时遇到的特殊字符

特殊字符列表:

回车  " "  "x13"

响铃  "x07"

换行  " "  "x10"  " "  "x13x10"

Tab  " "  "x09"

删除  键盘产生事件:"x08"  ,也有时候删除键事件是: “x7f”  服务端返回:”x08x1b[K“

跟终端设置有关:

>>> print("abcx08x1b[Khaha")
abhaha

以下还有待研究,移动次数其实不产生实际效果,主要是移动后输入或删除了数据等。

以下都是先输入了一串字符后:

左移一次:  键盘产生三次事件:"x1b" “["  "D"  , 服务器端返回"x08"

右移一次:  键盘产生事件:"x1b"   “["  "C"  , 服务器端返回"x08"

左移移一次, 键盘产生:“x1b"  "["   "D"  ,服务器返回 “x08",    再右移依次  键盘产生   "x1b" ”["  "C"   服务器返回返回 “x1b[C ”  , ,  再回车,服务器返回 ” “

左移一次, 键盘产生: "x1b" "[" "D',服务器返回”x08"; 再左移一次,键盘产生:"x1b" "["  "D",服务器返回 “x08”; 再右移一次,键盘产生: "x1b"  "[" "C",服务器返回 “x1b[C”  ;  再右移一次,

键盘产生 "x1b"  "[" "C",服务器返回 “x1b[C”  ; 再输入 a ,键盘产生  “a”,服务器返回:“a”  ; 再回车,键盘产生:“ ",服务器返回:“ xxxxxx"

实际情况:

先输入:ifconfg ,然后 左移一次有输入"i"  键盘产生事件:"x1b[Di"    服务端返回:”x08igx08"

>>> print("ifconfgx08igx08")
ifconfig

先输入ifconfg,然后左移两次,再右移一次,输入i,  键盘产生事件:"x1b[Dx1b[Dx1b[Ci"    服务器端返回x08x081b[Cigx08

>>> print("ifconfgx08x08x1b[Cigx08")
ifconfig

左移两次然后输入a,这时会覆盖f,但是g还在: 

>>> print("ifconfgx08x08ax08")
ifconag

比如输入ls,服务器端返回输入显示不全,显示--More--时,服务器端返回的是:    --More--

原文地址:https://www.cnblogs.com/owasp/p/5644767.html