shell ip及端口扫描脚本

16 篇文章 1 订阅
12 篇文章 1 订阅

看了个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 ]
then
	echo "$tip.$n on"
else
	echo "$tip.$n off"
echo ''
fi


 

如果希望测试多个IP,可以将输入,改为读取文件,在文件中写入要测试的ip(每行1条)

然后用for循环测试

#!/bin/bash
#提前创建ip.txt 将要测试的ip写入

All_tip=`cat ip.txt`
for tip in $All_tip
do
    res=`ping $tip -c 1 | grep ttl | awk '{print $4}' | awk -F: '{print $1}'` 
#判断 
    if [ $res > 0 ]
    then
	    echo "$tip.$n on"
    else
	    echo "$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`
do
	echo -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 ]
	then
		echo "$tip.$n on"
	else
		echo "$tip.$n off"
	fi
#	echo ''
done


 

扩展二:扫描ip端口

#!/bin/bash
A=`cat ip1`
for B in $A
do
	n=`echo $B | wc -L`
	if [ $n -gt 6 ]
	then
		ip=$B
		echo "scan $ip"
		echo "Nmap scan report for $ip" >>r1
	else
		port=$B
		nmap -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
3306

192.168.1.26
22
80
443
3306

 

扫描结果

 

 

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值