- shell脚本
- 代码
- 原理
- 代码解释
- 运行
shell脚本
Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,它使用了Linux/Unix下的命令。
代码#!/bin/bash if [ "$1" == "" ] then echo "You forgot an IP address!" echo "Syntax: ./ipsweep.sh 192.168.1" else for ip in `seq 1 254`; do ping -c 1 $1.$ip | grep "64 bytes" | cut -d " " -f 4 | tr -d ":" & done fi原理
就是发送ping请求包,看对方是否回包,来判断对方的存活,此方法有可能会漏报(开了防火墙)
代码解释- $0,$1,$2
$0 就是你写的shell脚本本身的名字,$1 是你给你写的shell脚本传的第一个参数,$2 是你给你写的shell脚本传的第二个参数
参数为空时,打印语法提示 - `seq 1 254`
1-254的数组 - ping -c 1 ip
对指定ip ping一次
目标主机没回包,输出像这样
目标主机回包
- grep “64 bytes”
查找64 bytes字符串,成功回包能匹配上,不回包则什么都没有
- cut -d " " -f 4
以空格为分隔符,分开查找到的字符串,并选择第4个元素
- tr -d “:”
清除所有:(冒号)
- &
表示后台执行ping命令,也就是说控制台是看不到ping的过程
此程序只是打印扫描出来的ip地址到控制台显示
如果要写入文件,可以使用 > 重定向到一个文件
- 这段代码等于254个进程并发运行了,如果扫描b段主机,并发进程数会更多,到时候要修改代码
不输入参数,进行语法提示
输入参数,扫描192.168.175.0网段的主机,扫出三台



