linux tcp发包工具_怎么用命令行查IP

linux tcp发包工具_怎么用命令行查IPSendip是一个linux平台的命令行发数据包工具,目前(2018年2月)支持的协议有ipv4、ipv6、icmp、tcp、udp、bgp、rip、ntp,作者表示其他协议将会后面支持,当他有空写的时候。Sendip很强大,它支持自定义头部和数据(也就是IP层以上的整个包),没有过多的限制,所以连源IP都可以随意写,而且里面也提供了一些默认的选项,可以择需而发,非常方便。又因为它是命令行的,还支…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Sendip是一个linux平台的命令行发数据包工具,目前(2018年2月)支持的协议有ipv4、ipv6、icmp、tcp、udp、bgp、rip、ntp,作者表示其他协议将会后面支持,当他有空写的时候。Sendip很强大,它支持自定义头部和数据(也就是IP层以上的整个包),没有过多的限制,所以连源IP都可以随意写,而且里面也提供了一些默认的选项,可以择需而发,非常方便。又因为它是命令行的,还支持从文件中直接读取整个packet发送,所以适合用脚本批量测试。它只是个发包工具,对于发出去的包,收到了什么样的回复,Sendip是不知道的,所以要得到回复的包就只能用抓包工具了。它的源码也很简单,没有过多平台相关的代码,如果不理解也可以看源码。

其实这个工具已经满足了我的要求,之前下载的PackETH是GUI版的,连数据链路层(link layer)都支持,也要求必须提供这一层的相关信息才能发包,这一层一般不太关心,它又不提供自动封装,总的来说不太适合用。

Sendip简单使用

通用选项:

-d 要携带的数据。rN随机产生N个字节,0x之后带十六进制,0之后带8进制。

-f 从文件中读取要携带的数据。

-p 加载协议模块,只有加载了才能使用。

-v 打印整个发出的包。

ipv4模块:

-iv x 版本 Default: 4

-ih x 首部长度 Default: Correct

-iy x 区分服务 Default: 0

-il x 总长度 Default: Correct

———————————————-32bit

-ii x 标识 Default: Random

-ifr x 标志 Default: 0 (options are 0,1,r)

-if x 片偏移 Default: 0

———————————————-32bit

-it x 生存时间 Default: 255

-ip x 协议 Default: 0, or set by underlying protocol

-ic x 首部检验和 Default: Correct

———————————————-32bit

-is x 源地址 Default: 127.0.0.1

———————————————-32bit

-id x 目的地址 Default: Correct

———————————————-32bit

下面全是可选字段(比较少用,不译):

-ifd x IP don’t fragment flag (see README)

Default: 0 (options are 0,1,r)

-ifm x IP more fragments flag (see README)

Default: 0 (options are 0,1,r)

-ionum x

IP option as string of hex bytes (length is always correct)

Default: (no options)

-ioeol IP option: end of list

-ionop IP option: no-op

-iorr x

IP option: record route. Format: pointer:addr1:addr2:…

-iots x

IP option: timestamp. Format: pointer:overflow:flag:(ip1:)ts1:(ip2:)ts2:…

-iolsr x

IP option: loose source route. Format: pointer:addr1:addr2:…

-iosid x

IP option: stream identifier

-iossr x

IP option: strict source route. Format: pointer:addr1:addr2:…

tcp模块:

-ts x 源端口 Default: 0

-td x 目的端口 Default: 0

———————————————-32bit

-tn x 序号 Default: Random

———————————————-32bit

-ta x 确认号 Default: 0

———————————————-32bit

-tt x 数据偏移 Default: Correct

-tr x 保留(ECN、CWR看rfc2481) Default: 0

-tfu x URG Default: 0, or 1 if -tu specified (options are 0,1,r)

-tfa x ACK Default: 0, or 1 if -ta specified (options are 0,1,r)

-tfp x PSH Default: 0 (options are 0,1,r)

-tfr x RST Default: 0 (options are 0,1,r)

-tfs x SYN Default: 1 (options are 0,1,r)

-tff x FIN Default: 0 (options are 0,1,r)

-tw x 窗口 Default: 65535

———————————————-32bit

-tc x 检验和 Default: Correct

-tu x 紧急指针 Default: 0

———————————————-32bit

下面全是可选字段(比较少用,不译):

-tonum x TCP option as string of hex bytes (length is always correct)

Default: (no options)

-toeol TCP option: end of list

-tonop TCP option: no op

-tomss x

TCP option: maximum segment size

-towscale x

TCP option: window scale (rfc1323)

-tosackok

TCP option: allow selective ack (rfc2018)

-tosack x

TCP option: selective ack (rfc2018), format is l_edge1:r_edge1,l_edge2:r_edge2…

-tots x

TCP option: timestamp (rfc1323), format is tsval:tsecr

udp模块:

-us x 源端口 Default: 0

-ud x 目的端口 Default: 0

-ul x 长度 Default: Correct

-uc x 检验和 Default: Correct

要注意,按照从左到右的顺序依次封装报文,所以ip报文必须写在其他报文之前。如果协议中需要检验和之类的就按默认的就行了,省去计算的痛苦。下面有几个例子:

sendip -v -p ipv4 -id 14.215.177.39 -p udp -f test www.baidu.com

sendip -p ipv4 -is 192.168.1.2 -id 192.168.1.1 -p icmp -d 0x89ABCDEF www.google.com

其中主要的结构是sendip 网络层 上一层 数据 domain,domain是目的主机,可以是www.baidu.com或192.168.1.1之类的。如果出现什么错误就会打印出帮助信息,里面有一行是提示错误原因,别漏看了。至于能不能发不规则的包(如数据与报文长度不符合、校验和乱写之类的),实际会不会发出去就没进行测试了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196822.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 纯滚动怎么理解_scrollview不滚动

    纯滚动怎么理解_scrollview不滚动[1]滚动宽高[2]页面尺寸[3]滚动长度[4]页面滚动[5]滚动方法[6]滚动事件

    2022年8月2日
    9
  • 集合框架二:List

    集合框架二:List

    2021年5月24日
    148
  • java 整数规划_线性规划与整数规划求解速度对比

    java 整数规划_线性规划与整数规划求解速度对比文章发表于微信公众号【数据魔术师】:线性规划&整数规划求解速度PK线性规划&整数规划求解速度PK​mp.weixin.qq.com相信大家对线性规划和整数规划应该不陌生,在开始今天的问题之前我们不妨再来复习一下这两个概念,毕竟温故而知新嘛线性规划与整数规划线性规划是这样定义的:求解线性规划问题的基本方法是单纯形法,后来又有改进单纯形法、对偶单纯形法等。而整数(线性)规划则是在线性规…

    2022年7月12日
    14
  • 线程VS进程「建议收藏」

    线程VS进程「建议收藏」什么是线程、什么是进程在Java中要同时执行(如果是单核,准确的说是交替执行)多个任务,使用的是多线程,而要理解线程,我们先要了解什么是进程什么是线程。一般的定义:进程是指在操作系统中正在运行的一个应用程序,线程是指进程内独立执行某个任务的一个单元。怎么理解呢?比如说QQ是是一个进程,如果你在和A朋友语音聊天的同时和B朋友打字聊天,同时还在QQ群下载图片,这三个操作就相当于开启了三个线程,可以说有了线程之后我们设计的程序就可以一边执行A操作,一边执行B操作了。线程和进程有什么区别呢?首先最直观的

    2022年7月15日
    12
  • 西门子scl语言和c语言,西门子SCL语言编程学习心得[通俗易懂]

    西门子scl语言和c语言,西门子SCL语言编程学习心得[通俗易懂]1、SCL程序可以在CPU314及其以上的S7(包含400)中运行。2、SCL程序建立在”S7Program”-”Sources”下面。S7-Program-Blocks(e.g.FB,OB)-Sources(e.g.SCLsourcefile)-Symbols3、程序结构FB:FUNCTION_BLOCKfb_nameEND_FUNCTION_BLOCKFC:FUNCTION…

    2022年10月7日
    3
  • 哈希表的数据结构[通俗易懂]

    转载自:https://www.jianshu.com/p/b468abd86f61Hash表的结构图:数组+链表哈希表(Hashtable,也叫散列表),是根据键(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表白话一点的说就是通过把Key通过一个固定的算法函数(hash函数)转换成一个整型数字,然后就对该数字对数组的长度进行取余,取余结果就

    2022年4月9日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号