Convert Hex to Decimal in IOS
Lots of IOS commands produce output in hex that I sometimes want to convert to decimal. Common ones for me are stuff like:
show ip cache flow
show ip flow top-talkers
and various debug commands. For example:
Router#sh ip cache flow | i Fa1/0.6
Fa0/1.6 10.5.188.158 Tu101* 10.5.24.15 06 0DA7 6D61 345
I have no idea what the port numbers in columns six and seven are. Fortunately, if the IOS device has the TCL or Bash shells available, we can quickly convert them.
Router#tclsh
Router(tcl)#puts [expr 0xda7]
3495
Router(tcl)#puts [expr 0x6d61]
28001
You could write a callable Tcl script to make this permanently available from normal EXEC mode too.
Router#sh run | i shell
shell processing full < required to enable Bash in IOS 15+
Router#printf "%d" 0xda7
3495
Router#printf "%d" 0x6d61
28001
show ip cache flow
show ip flow top-talkers
and various debug commands. For example:
Router#sh ip cache flow | i Fa1/0.6
Fa0/1.6 10.5.188.158 Tu101* 10.5.24.15 06 0DA7 6D61 345
I have no idea what the port numbers in columns six and seven are. Fortunately, if the IOS device has the TCL or Bash shells available, we can quickly convert them.
Method 1: Tcl Shell
Most routers have the Tcl shell available:Router#tclsh
Router(tcl)#puts [expr 0xda7]
3495
Router(tcl)#puts [expr 0x6d61]
28001
You could write a callable Tcl script to make this permanently available from normal EXEC mode too.
Method 2: Bash Shell
The Bash shell came out in one of the early IOS 15.0 versions, so you may or may not have it available. You need to explicitly enable it by entering "shell processing full" in global configuration mode.Router#sh run | i shell
shell processing full < required to enable Bash in IOS 15+
Router#printf "%d" 0xda7
3495
Router#printf "%d" 0x6d61
28001