NC 网猫
nc的参数:
**
-g<网关> 设置路由器跃程通信网关,最多可设置8个。
-G<指向器数目> 设置来源路由指向器,其数值为4的倍数。
-h 在线帮助。
-i<延迟秒数> 设置时间间隔,以便传送信息及扫描通信端口。
-l 使用监听模式,管控传入的资料。
-n 直接使用IP地址,而不通过域名服务器。
-o<输出文件> 指定文件名称,把往来传输的数据以16进制字码倾倒成该文件保存。
-p<通信端口> 设置本地主机使用的通信端口。
-r 乱数指定本地与远端主机的通信端口。
-s<来源位址> 设置本地主机送出数据包的IP地址。
-u 使用UDP传输协议。
-v 显示指令执行过程。
-w<超时秒数> 设置等待连线的时间。
-z 使用0输入/输出模式,只在扫描通信端口时使用
实际开发中的问题
当 服务端为TCP协议 端口为8900 使用nc向服务端发包(任意数据)时, 服务端识别的数据为字符串
例子:
使用netty本地调试演示一下抓取的数据区别, 实际上不管是在win还是linux 直接发送数据都会被默认为字符串
发送的数据:十六进制的78780d0a 转为 bytes 应为 [120, 120, 13, 10]
但服务器端解析的却是ascii码,可以看出当成字符串来处理了。
如何解决nc发送16进制不被识别的解决办法?
linux系统:使用echo -ne ‘\x’ 转义字符 \x 来发送到对应的服务端 即可解决。
echo -ne ‘\x78\x78\x0d\x0a’ | nc 127.0.0.1 8900
windows系统:none 暂时没有找到