#!/bin/bash Telnet_RFC_Decode_Word() { local Code= case $1 in # RFC854 TELNET PROTOCOL SPECIFICATION NULL|NUL) Code=0x00 ;; LF) Code=0x0A ;; CR) Code=0x0D ;; BELL|BEL) Code=0x07 ;; BS) Code=0x08 ;; HT) Code=0x09 ;; VT) Code=0x0B ;; FF) Code=0x0C ;; SE) Code=0xF0 ;; NOP) Code=0xF1 ;; DM) Code=0xF2 ;; BRK) Code=0xF3 ;; IP) Code=0xF4 ;; AO) Code=0xF5 ;; AYT) Code=0xF6 ;; EC) Code=0xF7 ;; EL) Code=0xF8 ;; GA) Code=0xF9 ;; SB) Code=0xFA ;; WILL) Code=0xFB ;; WON\'T|WONT) Code=0xFC ;; DO) Code=0xFD ;; DON\'T|DONT) Code=0xFE ;; IAC) Code=0xFF ;; # RFC856 TELNET BINARY TRANSMISSION TRANSMIT-BINARY) Code=0x00 ;; # RFC857 TELNET ECHO OPTION ECHO) Code=0x01 ;; # RFC858 TELNET SUPPRESS GO AHEAD OPTION SUPPRESS-GO-AHEAD) Code=0x03 ;; # RFC859 TELNET SUPPRESS GO AHEAD OPTION STATUS) Code=0x05 ;; IS) Code=0x00 ;; # RFC860 TELNET TIMING MARK OPTION TIMING-MARK) Code=0x06 ;; # RFC861 TELNET EXTENDED OPTIONS - LIST OPTION EXTENDED-OPTIONS-LIST|EXOPL)Code=0xFF ;; # RFC885 TELNET END OF RECORD OPTION END-OF-RECORD) Code=0x19 ;; EOR) Code=0xEF ;; # RFC927 TACACS User Identification Telnet Option TUID) Code=0x1A ;; # RFC933 OUTPUT MARKING TELNET OPTION OUTMRK) Code=0x1B ;; GS) Code=0x1D ;; # RFC1041 Telnet 3270 Regime Option 3270-REGIME) Code=0x29 ;; ARE) Code=0x01 ;; # RFC1073 Telnet Window Size Option NAWS) Code=0x1F ;; # RFC1079 Telnet Terminal Speed Option TERMINAL-SPEED) Code=0x20 ;; # RFC1091 Telnet Terminal-Type Option TERMINAL-TYPE) Code=0x18 ;; SEND) Code=0x01 ;; # RFC1096 Telnet X Display Location Option X-DISPLAY-LOCATION|XDISPLOC)Code=0x23 ;; # RFC1097 TELNET SUBLIMINAL-MESSAGE Option SUBLIMINAL-MESSAGE) Code=0x101 ;; # RFC1116 Telnet Linemode Option LINEMODE) Code=0x22 ;; MODE) Code=0x01 ;; EDIT) Code=0x01 ;; TRAPSIG) Code=0x02 ;; MODE_ACK) Code=0x04 ;; FORWARDMASK) Code=0x02 ;; SLC) Code=0x03 ;; SLC_SYNCH) Code=0x01 ;; SLC_BRK) Code=0x02 ;; SLC_IP) Code=0x03 ;; SLC_AO) Code=0x04 ;; SLC_AYT) Code=0x05 ;; SLC_EOR) Code=0x06 ;; SLC_ABORT) Code=0x07 ;; SLC_EOF) Code=0x08 ;; SLC_SUSP) Code=0x09 ;; SLC_EC) Code=0x0A ;; SLC_EL) Code=0x0B ;; SLC_EW) Code=0x0C ;; SLC_RP) Code=0x0D ;; SLC_LNEXT) Code=0x0E ;; SLC_XON) Code=0x0F ;; SLC_XOFF) Code=0x10 ;; SLC_FORW1) Code=0x11 ;; SLC_FORW2) Code=0x12 ;; SLC_DEFAULT) Code=0x03 ;; SLC_VALUE) Code=0x02 ;; SLC_CANTCHANGE) Code=0x01 ;; SLC_NOSUPPORT) Code=0x00 ;; SLC_LEVELBITS) Code=0x03 ;; SLC_ACK) Code=0x80 ;; SLC_FLUSHIN) Code=0x40 ;; SLC_FLUSHOUT) Code=0x20 ;; EOF) Code=0xEC ;; SUSP) Code=0xED ;; ABORT) Code=0xEE ;; # RFC1184 Telnet Linemode Option SOFT_TAB) Code=0x08 ;; LIT_ECHO) Code=0x10 ;; SLC_MCL) Code=0x13 ;; SLC_MCR) Code=0x14 ;; SLC_MCWL) Code=0x15 ;; SLC_MCWR) Code=0x16 ;; SLC_MCBOL) Code=0x17 ;; SLC_MCEOL) Code=0x18 ;; SLC_INSRT) Code=0x19 ;; SLC_OVER) Code=0x1A ;; SLC_ECR) Code=0x1B ;; SLC_EWR) Code=0x1C ;; SLC_EBOL) Code=0x1D ;; SLC_EEOL) Code=0x1E ;; # RFC1080 Telnet Remote Flow Control Option TOGGLE-FLOW-CONTROL) Code=0x21 ;; OFF) Code=0x00 ;; ON) Code=0x01 ;; RESTART-ANY) Code=0x02 ;; RESTART-XON) Code=0x03 ;; # RFC1408 Telnet Environment Option ENVIRON) Code=0x24 ;; INFO) Code=0x02 ;; VAR) Code=0x00 ;; VALUE) Code=0x01 ;; ESC) Code=0x02 ;; USEVAR) Code=0x03 ;; # RFC1416 Telnet Authentication Option AUTHENTICATION) Code=0x43 ;; REPLY) Code=0x02 ;; NAME) Code=0x03 ;; KERBEROS_V4) Code=0x01 ;; KERBEROS_V5) Code=0x02 ;; SPX) Code=0x03 ;; RSA) Code=0x06 ;; LOKI) Code=0x0A ;; AUTH_WHO_MASK) Code=0x01 ;; AUTH_CLIENT_TO_SERVER) Code=0x00 ;; AUTH_SERVER_TO_CLIENT) Code=0x01 ;; AUTH_HOW_MASK) Code=0x02 ;; AUTH_HOW_ONE_WAY) Code=0x00 ;; AUTH_HOW_MUTUAL) Code=0x02 ;; # RFC1411 Telnet Authentication: Kerberos Version 4 AUTH) Code=0x00 ;; REJECT) Code=0x01 ;; ACCEPT) Code=0x02 ;; CHALLENGE) Code=0x03 ;; RESPONSE) Code=0x04 ;; # RFC1572 Telnet Environment Option NEW-ENVIRON) Code=0x27 ;; # RFC2066 TELNET CHARACTER Option CHARSET) Code=0x2A ;; REQUEST) Code=0x01 ;; ACCEPTED) Code=0x02 ;; REJECTED) Code=0x03 ;; TTABLE-IS) Code=0x04 ;; TTABLE-REJECTED) Code=0x05 ;; TTABLE-ACK) Code=0x06 ;; TTABLE-NAK) Code=0x07 ;; # NOT RFC CODE *) Code="$1" esac echo "$Code" } Telnet_Heximal_Echo() { eval "echo -n \$'\x${1//0x}'" } Telnet_RFC_Heximal_Show() { local Line local Word while read Line do for Word in $Line do echo -n "$(Telnet_RFC_Decode_Word $Word) " done echo done } Telnet_RFC_Source() { local Line local Word while read Line do for Word in $Line do Telnet_Heximal_Echo $(Telnet_RFC_Decode_Word $Word) done done }