目录

通过/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

链接:https://www.jianshu.com/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<&-

原文链接:https://blog.csdn.net/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))

原文链接:https://blog.csdn.net/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打包的一些环境参数;
原文链接:https://blog.csdn.net/nicai_xiaoqinxi/article/details/85311458

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

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

    目录 通过/dev/tcp./dev/udp shell给tcp或udp服务发送16进制报文指令 通过/dev/tcp./dev/udp (https://blog.csdn.net/u0100394 ...

  2. php udp发送和接收_63、php利用原生socket创建udp服务

    1.案例函数汇总 2.案例 通过socket创建udp服务,获取对端的ip和port信息.并进行打印 2.1.udp服务源码 /** * Copyright(C) Iamasb * @project ...

  3. TCP请求发送和接收,如果接收端终止,发送端继续发送会出什么错

    我利用nodejs构造了一对TCP服务器和客户端之后, 客户端每隔5秒向服务器端发送一个TCP请求: function doRunLoopDo() { log.info('timeout')pushN ...

  4. TCP/IP协议族之运输层协议 ( UDP, TCP)

    UDP  User Datagram Protocol    用户数据报协议 TCP  Transmission Control Protocol    传输控制协议 UDP:向应用层提供无连接的.不 ...

  5. 如何使用SX1278的中断控制发送和接收

    SX1278中断详解 中断寄存器 中断寄存器在程序中使用 中断程序说明 中断寄存器 在SX1278中,中断寄存器的地址是0x12, 在数据手册中称为RegIrqFlag. 是一个非常重要的寄存器,利用 ...

  6. AUTOSAR DiagnosticLogAndTrace DLT(三)-- 消息的发送、DLT命令的发送与接收

    从本文章您将了解到: Log和Trace报文的发送过程 发送接口 DLT命令的发送与接收过程与接口 一.发送Log和Trace报文 下图基本描述了如何在通信总线上发送DLT报文的过程 3.0. 发送的 ...

  7. 物联网LoRa系列-15:图解、详解无线终端的天线对无线电磁波的发送与接收

    前言: 任何一个无线射频设备,都离不开天线,它负责发送和接收来自空中的电磁辐射,或者说电磁波. 在发送方向,天线能够把射频设备的产生的高频率的电流信号,转换电磁波,并发送到空气中进行传播. 在接收方向 ...

  8. 通过Boomerang按计划在Gmail中发送或接收电子邮件(并且我们有邀请)

    Have you ever needed to send or receive an email at a different time, and wanted to schedule it?  Bo ...

  9. Boardcast Receiver 源码分析:广播的动态注册、发送和接收过程

    文章目录 动态注册过程 ContextWrapper#registerReceiver(以下代码基于API26) ContextImpl#registerReceiver ContextImpl#re ...

  10. 以太网(ethernet)通信。DSP开发板28388D发送数据,电脑接收数据。使用的是UDP协议

    一.使用的开发板(DSP28388D): TMDSCNCD28388D(3核) 二.想要实现的目标: 电脑连到交换机A上,开发板连到交换机A上.电脑与开发板能够进行数据通信(暂时,先调开发板给电脑发送 ...

最新文章

  1. 怎么合成音乐_剪映教程:剪映怎么剪辑音乐?
  2. shell 调用mysql 存储过程_shell调用mysql的存储过程以及SQL
  3. Kaggle实战:点击率预估
  4. python爬虫cookie池 与ip绑定_Python爬虫防封ip的一些技巧
  5. eclipse插件svn账号信息清空重新登陆
  6. Thinkpad 笔记本VMware Workstation 安装虚拟机出现“此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态”解决方法
  7. jquery tmpl 详解
  8. 9.docker commit
  9. 浅谈机器学习-分类和聚类的区别
  10. 【生信】统计学基础知识
  11. 没有密码怎么撤销工作表保护
  12. 单片机c语言串转并的IO实验,74LS164 串入并出实验
  13. linux文件系统 ubi,UBI文件系统简介
  14. 含有js的英文单词_常用的js单词整理
  15. java vcard格式_关于vcard 文件数据格式,以备不时之需
  16. 阿里 P7 到底是怎样的水平 ???
  17. php resque demo,php-resque 极简php消息队列
  18. MTCNN中的IOU详解
  19. m苹果放n篮子_算法交流:666苹果放篮子【2.6基本算法之动态规划】-09
  20. 【字体】写代码编程字体展示推荐

热门文章

  1. python写的 自定义连点器 的开发全过程(抢票、信息轰炸等、游戏连招等)——思路及解析【内附完整源码】
  2. 字节跳动社招Java常见面试题
  3. 客户端navicat安装教程
  4. 修改注册表解决 Win7 DbgView 不显示调试信息
  5. 小米笔记本、小米游戏本重装原装出厂镜像教程-有百度盘的提取码
  6. matlab自带优化工具箱,二元一次函数
  7. 电子技术基础(三)__具有无关项逻辑函数的化简
  8. Linux实现黑客帝国背景炫酷效果
  9. matlab sqrtm,zz矩阵开方sqrt()和sqrtm()的区别
  10. 图书管理 python excel_爬取python异步社区图书并写入excel