本文主要是介绍shell ip及端口扫描脚本,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
看了个kali教程视频,里面涉及一点自写脚本的内容
下面是ip地址扫描,判断主机是否在线的shell
#!/bin/bash
echo 'inputip:' #提示输入要扫描的ip地址
read inputip #获取终端输入给变量inputip
tip=$inputip #将获取到的inputip 给变量 tip 这里是多余的赋值 只是不想修改下面的代码而已
echo -n '1: ' #输出行号
#使用ping方法查看 注意等好后面的是 反单引号 结尾处也是 反单引号
res=`ping $tip -c 1 | grep ttl | awk '{print $4}' | awk -F: '{print $1}'`
#判断
if [ $res > 0 ]
thenecho "$tip.$n on"
elseecho "$tip.$n off"
echo ''
fi
如果希望测试多个IP,可以将输入,改为读取文件,在文件中写入要测试的ip(每行1条)
然后用for循环测试
#!/bin/bash
#提前创建ip.txt 将要测试的ip写入All_tip=`cat ip.txt`
for tip in $All_tip
dores=`ping $tip -c 1 | grep ttl | awk '{print $4}' | awk -F: '{print $1}'`
#判断 if [ $res > 0 ]thenecho "$tip.$n on"elseecho "$tip.$n off"echo ''fi
done
一种特殊的if
#if [ $? -eq 0 ] ### $? 是获取上一行的执行结果或者返回值 -eq 0 代表成功 1代表失败
扩展一:扫描整个C段 192.168.1.*
#!/bin/bash
echo '请输入ip C段地址,如 192.168.1'
echo 'inputip:'
read inputip
tip=$inputip
for n in `seq 254`
doecho -n $n ': 'res=`ping $tip.$n -c 1 | grep ttl | awk '{print $4}' | awk '{print $1}'`#ping $tip.$n -c 1 | grep ttl | awk '{print $4}' | awk -F: '{print $1}'if [ $res > 0 ]#if [ $? -eq 0 ]thenecho "$tip.$n on"elseecho "$tip.$n off"fi
# echo ''
done
扩展二:扫描ip端口
#!/bin/bash
A=`cat ip1`
for B in $A
don=`echo $B | wc -L`if [ $n -gt 6 ]thenip=$Becho "scan $ip"echo "Nmap scan report for $ip" >>r1elseport=$Bnmap -p$port -sV $ip | grep -v Starting | grep -v report | grep -v Host | grep -v PORT | grep -v Service | grep -v 'done' >>r1#echo `nmap -p$port -sV $ip` fi
done
ip1内容
192.168.16.24
22
80
443
3306192.168.1.26
22
80
443
3306
扫描结果
这篇关于shell ip及端口扫描脚本的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!