telnet客端送出指令與伺服端動作 - Linux

Una avatar
By Una
at 2015-10-14T01:57

Table of Contents

當你使用ptt bbs telnet客端軟體連到ptt伺服器時,

隨便按下任一按鍵,會發生什麼事?會不會遇到超乎預期的反應?

這是有可能的,因為:

1.不同客端軟體相同按鍵送出代碼不一定一樣,

2.不同伺服端對相同代碼反應動作不一定一樣,

** 1.telnet客端軟體有很多種,例如windows內建的telnet.exe,
pcman,kkman,firefox的附加元件'BBSFox'等,
基本上大同小異,以下按鍵每個軟體送出代碼應該都一樣,例如:

U 0x55
u 0x75
esc 0x1b
tab 0x09
backspace 0x08

以上代碼都與ascii-code表一致,

那如果按 ctrl+a 等會送出什麼代碼?答案如下
ctrl+h 0x08
ctrl+i 0x09
ctrl+u 0x15
ctrl+l 0x0c
ctrl+k 0x0b
ctrl+e 0x05
ctrl+d 0x04
ctrl+a 0x01
以上就無法從ascii-code表查出,

另外像是home end 方向鍵送出的代碼就不只1byte,而是3-4 bytes,如下
home 1B 5B 31 7E
end 1B 5B 34 7E
up 1B 5B 41
down 1B 5B 42
right 1B 5B 43
left 1B 5B 44

以上所說按鍵代碼,無論用kkman pcman telnet.exe送出應該都一樣,

但還是有小差異,例如telnet.exe按'DELETE'鍵送出1bytes的代碼 0x7f
而firefox的附加元件'BBSFox'按'DELETE'鍵送出4bytes的代碼 1B 5B 33 7E

如何得知按鍵送出的代碼?可以用以下軟體SmartSniff監視連線封包就知道,
http://www.nirsoft.net/utils/smsniff.html

** 2.當你按下 ctrl+u 應該會送出1byte大小的代碼 0x15 ,
那伺服器端收到代碼 0x15 會做什麼事?
一般而言,在命令列模式下,ctrl+u (0x15)會將游標左側那一行清除,
但這不是絕對的,因為伺服端有不同版本linux,不同shell環境,
而且也應該可以更改ctrl+u做其他事,

我的問題:目前我登入的telnet伺服端是linux bash shell環境,

bash shell會在命令列執行delete動作:(將游標所在或右側刪去一個字元)

但是只接受ctrl+d(0x04) 或 (1B 5B 33 7E)兩個代碼才會精準執行delete動作,

也就是說把游標移到想刪除的字元,可以按ctrl+d刪除,也可慢慢打四個按鍵,

ESC [ 3 ~ (1B 5B 33 7E),來刪除字元。

請問這個要從哪裡改?改成其他代碼也可執行delete動作?

stty erase ^H 等等試過了,沒有改變,沒有用,

應該有個鍵盤設定檔可以改?請問在哪裡?

--
Tags: Linux

All Comments

Selena avatar
By Selena
at 2015-10-16T23:08
pietty 之類軟體會有個選項可以改鍵盤模式
模擬 ascii 127 / vt220 模式,就會影響 delete 鍵
所送出的字元代碼
Vanessa avatar
By Vanessa
at 2015-10-18T13:34
我比較想從伺服端去改 從bash shell環境去改

關於使用usb安裝Ubuntu

Tristan Cohan avatar
By Tristan Cohan
at 2015-10-13T20:23
最近正在學習如何使用Ubuntu 很想試著用usb安裝 不過對於每次遇到磁碟切割都很頭痛 原因是我不清楚這個and#34;磁碟and#34;是指usb 還是我的電腦 小妹不才 第一次在此版發文 還請見諒 若有違反板規 也請鞭小力一點 謝謝大家 - ...

我想請教關於MIT license

Tristan Cohan avatar
By Tristan Cohan
at 2015-10-13T14:06
※ 引述《fourdollars (四元)》之銘言: : 另外有一種是主動拋棄著作權的條款 : http://creativecommons.tw/cc0 : 也是挺有趣的 :-) 大部份國家的著作權法是規定著作人格權是不能拋棄的。 能拋棄的只是著作財產權。 例如我國著作權法第二十一條就有規定 ...

我想請教關於MIT license

Hedda avatar
By Hedda
at 2015-10-13T12:33
另外有一種是主動拋棄著作權的條款 http://creativecommons.tw/cc0 也是挺有趣的 :-) ※ 引述《EdwardGJLee (LGJ)》之銘言: : : 推 qas612820704: 我可以請教關於 and#34;不要把別人的 copyright 給丟掉。and#34; 10/1 ...

我想請教關於MIT license

Kyle avatar
By Kyle
at 2015-10-13T07:57
: 推 qas612820704: 我可以請教關於 and#34;不要把別人的 copyright 給丟掉。and#34; 10/12 23:23 : → qas612820704: 跟不用掛MIT的差別嗎? 10/12 23:24 copyr ...

監控串流並用awk及時打印出來

Victoria avatar
By Victoria
at 2015-10-13T00:25
※ 引述《makefriends (5 + 2 = life)》之銘言: : 各位大大 : 小弟想對監控的串流訊息的每一行用awk加上時間戳後存成文字檔。 : 舉個例子: : ping -c 50 127.0.0.1 | awk and#39;{ print strftime(and#34;%Tand#34; ...