我想在UDP数据包中只发送一个短值,但运行命令
echo -n "hello" | nc -4u localhost 8000
Run Code Online (Sandbox Code Playgroud)
我可以看到服务器正在获取hello的东西,但我必须按Ctrl+ c退出netcat命令.
发送问候后如何让它退出?
对不起,对于噪音,我重新阅读了手册页并找到了-q选项.
echo -n "hello" | nc -4u -q1 localhost 8000
Run Code Online (Sandbox Code Playgroud)
工作(它在1秒后退出).
由于某种原因,它无法使用-q0.
Pet*_*aut 188
如果你正在使用bash,你不妨写一下
echo -n "hello" >/dev/udp/localhost/8000
Run Code Online (Sandbox Code Playgroud)
并避免netcat的所有特性和不兼容性.
这也适用于发送给其他主机,例如:
echo -n "hello" >/dev/udp/remotehost/8000
Run Code Online (Sandbox Code Playgroud)
这些不是文件系统上的"真实"设备,而是bash"特殊" 别名.
Tra*_*ago 46
我-q1在netcat上找不到该选项.相反,我使用了该-w1选项.下面是我将udp数据包发送到任何主机和端口的bash脚本:
#!/bin/bash
def_host=localhost
def_port=43211
HOST=${2:-$def_host}
PORT=${3:-$def_port}
echo -n "$1" | nc -4u -w1 $HOST $PORT
Run Code Online (Sandbox Code Playgroud)
在当前的netcat(v0.7.1)上,你有一个-c开关:
-c, --close close connection on EOF from stdin
Run Code Online (Sandbox Code Playgroud)
因此,
echo "hi" | nc -cu localhost 8000
Run Code Online (Sandbox Code Playgroud)
应该做的伎俩.
小智 6
我有同样的问题,但我使用-w 0选项只发送一个数据包并退出。你应该使用这个命令:
echo -n "hello" | nc -4u -w0 localhost 8000
Run Code Online (Sandbox Code Playgroud)
Netcat每个换行发送一个数据包.所以你没事.如果你做了更复杂的事情,那么你可能还需要别的东西.
当我意识到这一点时,我正在和Wireshark鬼混.不知道它是否有帮助.
| 归档时间: |
|
| 查看次数: |
185527 次 |
| 最近记录: |