u100

Hping使用方法详解

我是研究僧i 提交于 2021-02-01 11:44:10
一、原理基础 Hping是一个命令行下使用的TCP/IP数据包组装/分析工具,其命令模式很像Unix下的ping命令,但是它不是只能发送ICMP回应请求,它还可以支持TCP、UDP、ICMP和RAW-IP协议,它有一个路由跟踪模式,能够在两个相互包含的通道之间传送文件。Hping常被用于检测网络和主机,其功能非常强大,可在多种操作系统下运行,如Linux,FreeBSD,NetBSD,OpenBSD,Solaris,MacOs X,Windows。 HPING和ping的区别:典型ping程序使用的是ICMP回显请求来测试,而HPING可以使用任何IP报文,包括ICMP、TCP、UDP、RAWSOCKET。 Hping的主要功能有: 防火墙测试 实用的端口扫描 网络检测,可以用不同的协议、服务类型(TOS)、IP分片 手工探测MTU(最大传输单元)路径 先进的路由跟踪,支持所有的协议 远程操作系统探测 远程的运行时间探测 TCP/IP堆栈审计 二、安装 Centos yum install hping Debian/Ubuntu apt-get install hping 三、Hping的详细参数 -h —help 显示帮助信息 -v —version 显示Hping的版本信息 -c —count 指定数据包的次数 -i —interval 指定发包间隔为多少毫秒,如-i m10

shell脚本并发

倖福魔咒の 提交于 2020-12-08 02:40:31
1、怎么理解shell并发: 当我们在执行一个for循环时,假设这个for循环需要循环500次,每循环一次就需要1秒,当这个for循环的脚本执行完毕时,就需要500秒,这样看效率有些低(尤其在量级高的时候,会更明显),所以我们需要shell脚本的for循环无论循环多少次,让它们同时执行,不需要按顺序循环,这就是shell脚本的并发。 2、如何实现shell脚本并发: 实现非常简单,就是在循环体的{}后面加上一个&符号,代表每次循环体的命令都放入后台运行 3、经典实例: 判断192.168.80.0/24网络,当前在线的主机数以及IP #!/bin/bash . /etc/init.d/functions cmd="ping -c 2" for ((i=1;i<=254;i++));do { $cmd 192.168.80.$i &>/dev/null if [ $? = 0 ];then action "192.168.80.$i" /bin/true fi }& #将{}循环体放入后台执行 done wait #等待上面放入后台的命令执行完毕后,在往下执行(如果后面还有要执行的命令,最好加上wait),因为命令一旦放到后台执行,这条任务就交个操作系统了,shell脚本会不等上面的执行完毕,就会继续往下执行。 扩展知识点: 我们知道了什么是shell脚本的并发,试想一下

shell多线程

微笑、不失礼 提交于 2020-08-05 11:20:41
最近看到一个前辈留下的shell,发现竟然是shell多线程,便研究了下。也许你会有疑问,Shell这么简单的脚本语言有多线程这一说吗?答案是有的。只不过它实现起来稍微有点难理解罢了,因为它借助了命名管道实现。所谓多线程就是原本由一个进程完成的事情现在由多个线程去完成。假如一个进程需要10小时完成的事情,现在分配10个线程,给他们分工,然后同时去做这件事情,最终可能就需要1小时。 文件描述符: 文件描述符(缩写fd)在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录表。当程序打开一个现有文件或者创建一个新文件时,内核向进程返回一个文件描述符。每一个unix进程,都会拥有三个标准的文件描述符,来对应三种不同的流: 除了上面三个标准的描述符外,我们还可以在进程中去自定义其他的数字作为文件描述符。每一个文件描述符会对应一个打开文件,同时,不同的文件描述符也可以对应同一个打开文件;同一个文件可以被不同的进程打开,也可以被同一个进程多次打开。 命名管道 我们前面在shell脚本中多次用过这个管道符号'|',这个叫做匿名管道,也就是说它并没有名字,而这里提到的管道叫做命名管道,功能和那个匿名管道基本上是一样的。命名管道,英文名First In First Out,简称FIFO。命名管道有如下特点:1)在文件系统中,FIFO拥有名称