she*_*lly 7 telnet netcat xxd nc
我不知道是否有什么办法让telnet来只发送\n,而不是一个\r\n。
例如,如果一个进程正在侦听这样的端口,则打印接收到的任何流量的字节:
nc -l 1234 | xxd -c 1
Run Code Online (Sandbox Code Playgroud)
从 netcat 连接到它nc localhost 1234,然后输入“hi[enter]”:
0000000: 68 h
0000001: 69 i
0000002: 0a .
Run Code Online (Sandbox Code Playgroud)
从 telnet 连接到它telnet localhost 1234,然后输入“hi[enter]”
0000000: 68 h
0000001: 69 i
0000002: 0d .
0000003: 0a .
Run Code Online (Sandbox Code Playgroud)
Telnet 为换行符发送 0x0d0a 而不是 0x0a。我知道这是一个 CRLF,而不是 LF。如果我使用^M或 ,它也会发送 CRLF ^J。
我以为我找到了一个直接解决这个问题的解决方案,通过使用toggle crlf,但即使设置了这个选项,Telnet 总是发送\r\n. 我也在各种 telnet 客户端上尝试过这个,所以我猜我误解了切换应该做什么。
有什么方法可以\n通过 telnet发送,输入或其他方式?
meu*_*euh 14
您可以协商二进制模式。一旦进入这种模式,你就不能离开它。协商意味着telnet客户端将向服务器发送一个特殊的字节序列,如果您没有实现协议,您将不得不忽略它。
后续数据在线路模式下不变地发送。客户:
$ telnet localhost 1234
Connected to localhost.
Escape character is '^]'.
^]
telnet> set binary
Negotiating binary mode with remote host.
hi
^]
telnet> quit
Run Code Online (Sandbox Code Playgroud)
和服务器
$ nc -l 1234 | xxd -c 1
00000000: ff .
00000001: fd .
00000002: 00 .
00000003: ff .
00000004: fb .
00000005: 00 .
00000006: 68 h
00000007: 69 i
00000008: 0a .
Run Code Online (Sandbox Code Playgroud)
您的telnet客户可以选择以二进制模式开始,或者您可以在~/.telnetrc
localhost
set binary
Run Code Online (Sandbox Code Playgroud)
您可以在每个方向上独立应用二进制模式,因此您可能更喜欢set outbinary.
| 归档时间: |
|
| 查看次数: |
11257 次 |
| 最近记录: |