1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

时间:2018-07-31 13:24:26

相关推荐

【测试】echo发送和接收TCP/UDP数据包|shell 发送TCP/UDP数据包

目录

通过/dev/tcp、/dev/udp

shell给tcp或udp服务发送16进制报文指令

shell处理进制数和字节

shell 10进制转16进制数

十六进制字符串到字节

shell字符串倒叙

shell判断大小端序

通过/dev/tcp、/dev/udp

(Linux shell脚本中发起tcp、udp连接_Blue summer的博客-CSDN博客)

通过/dev/tcp、/dev/udp可以直接在shell脚本中发起tcp、udp连接,方便又高效,平时用于测试啥的还是挺方便的。

直接发送

格式 /dev/udp/ip/port

比如要向本地10001端口发送数据,可以使用

echo "hello" > /dev/udp/localhost/10001

该方法的好处在于,发送完数据后自动退出。当我们需要在命令行下循环向特定udp端口发送数据时,我们只能使用方法二。

例如

while true

do

echo "xxxx" > /dev/udp/localhost/10001

done

链接:/p/b55f3aa77b07

先建立连接

exec 9<>/dev/tcp/10.100.70.139/19006

echo -e "stats" >&9

exec 9>/dev/tcp/192.168.0.136/5000

其中9为执行的文件描述符。这里>重定向符表示该文件描述符只能写入,如果想读取,可使用一下命令,

exec 9<>/dev/tcp/192.168.52.136/5000

至于关闭连接,则通过以下命令,

exec 9>&-

exec 9<&-

原文链接:/u010039418/article/details/86251470

shell给tcp或udp服务发送16进制报文指令

指令:

(sleep 2;echo "000F737D61747573" | xxd -r -p ;sleep 1)|nc 192.168.137.1 15000|hexdump -C

说明:上面为tcp示例(给nc添加参数-u可改为udp,但没验证,理论上可行)

示例功能:给192.168.137.1上的15000端口tcp服务送16进制报文内容000F737D61747573并将响应报文以16进制格式回显出来

shell处理进制数和字节

shell 10进制转16进制数

dec2hex(){printf "%x" $1}a=$(dec2hex 2131165531)echo $a

10进制转16进制:15 > 0xf

printf '%x\n' 15

16进制转10进制:0xf > 15

printf '%d\n' 0xF

echo $((16#f))

16进制转8进制:0xF > 17

printf '%o\n' 0xF

8进制转10进制:8#17 > 15

echo $((8#17))

2进制转10进制:2#1111 > 15

echo $((2#1111))

原文链接:/blog_zxb/article/details/106402723

还可以利用bc输出进制数

Linux 小技巧:bc输出进制 倒叙正序输出 查看汇编_ Zach-Zona的博客-CSDN博客

十六进制字符串到字节

linux shell脚本:十六进制字符串到字节 - 码客

shell字符串倒叙

方法1,使用rev

[root@rdma55 ~]# echo "ABC"|rev

CBA

方法2,使用awk

awk '{ for(i=length($0);i>0;i--){printf substr($0,i,1)}; printf "\n"}' file.txt

[root@rdma55 ~]# echo "ABC"|awk '{ for(i=length($0);i>0;i--){printf substr($0,i,1)}; printf "\n"}'

CBA

Linux shell:文本的按行逆序和字符串逆序_匿_名_用_户的专栏-CSDN博客

shell判断大小端序

方法一

echo -n I | od -o | head -n1 | cut -f2 -d" " | cut -c6

输出:1为小端模式,0为大端模式;

解析:od命令的作用为将指定内容以八进制、十进制、十六进制、浮点格式或ASCII编码字符方式显示;

方法二

echo -n I | od -o | head -n1 | awk '{print $2}'| cut -c6

输出:1为小端模式,0为大端模式;

解析:awk命令为文本处理。

方法三

lscpu | grep -i byte

输出:Byte Order:Little Endian;

解析:grep -i 为不区分大小写匹配;

注意:在低版本的Linux可能不支持lscpu命令。

方法四

dpkg-architecture | grep -i end

输出:

DEB_BUILD_ARCH_ENDIAN=little

DEB_HOST_ARCH_ENDIAN=little

DEB_TARGET_ARCH_ENDIAN=little

解析:dpkg-architecture命令是列出dpkg打包的一些环境参数;

原文链接:/nicai_xiaoqinxi/article/details/85311458

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。