linux端口扫描脚本ip段,Linux shell编写端口扫描脚本

Linux shell编写端口扫描脚本

需求:

扫描特定主机

扫描特定主机的特定端口

扫描特定网段

扫描特定网段中哪些主机开放了特定的端口

源码如下:

#/bin/bash

#该脚本用于对特定目标主机进行常见端口扫描(加载端口字典)或者指定端口扫描,判断目标主机开放来哪些端口

#用telnet方式

#作者:雨中落叶

#博客:https://www.cnblogs.com/yuzly/

IP=$1

#获得IP的前三位

threeIP=$(echo $IP |awk -F. '{print $1"."$2"."$3"."}')

#获得IP的第四位

endIP=$(echo $IP | awk -F. '{print $4}')

if [ $1 ]

then

if [ $2 ]

then

#IP的第四位为0表明是一个网段,对整个网段进行特定端口的扫描,发现哪个主机开放特定端口

if [ $endIP -eq 0 ]

then

for ((i=128;i<=140;i++))

do

(sleep 1;)|telnet $threeIP$i $2 2>&1 |grep "Connected to $threeIP$i">/dev/null

if [ $? -eq 0 ]

then

echo "主机$threeIP$i开放$2端口!"

else

echo "主机$threeIP$i的$2端口关闭!"

fi

done

else

#IP的第四位不为0,说明是单个IP,对单个IP进行特定端口扫描

(sleep 1;)|telnet $1 $2 2>&1 |grep "Connected to $1">/dev/null

if [ $? -eq 0 ]

then

echo "主机$1开放$2端口!"

else

echo "主机$1的$2端口关闭!"

fi

fi

else

#脚本只有一个IP参数,根据IP的第四位是否为0来判断是否为网段,因为没有端口参数,扫描默认端口

if [ $endIP -eq 0 ]

then

for ((i=128;i<=130;i++))

do

for port in $(cat defaultport.txt)

do

(sleep 1;)|telnet $threeIP$i $port 2>&1 |grep "Connected to $threeIP$i">/dev/null

if [ $? -eq 0 ]

then

echo "主机$threeIP$i开放$port端口!"

else

echo "主机$threeIP$i的$port端口关闭!"

fi

done

done

else

#脚本只有IP一个参数,没有端口参数,加载端口字典扫描默认端口

for i in $(cat defaultport.txt)

do

#与目标主机的特定端口只通信1秒,根据返回的数据来判断目标是否开放特定端口

(sleep 1;)|telnet $1 $i 2>&1 |grep "Connected to $1">/dev/null

if [ $? -eq 0 ]

then

echo "主机$1开放$i端口!"

else

echo "主机$1的$i端口关闭!"

fi

done

fi

fi

else

echo "*******************************************

该脚本的用法示例:

$0 192.168.1.1(扫描默认端口)

$0 192.168.1.1 portx(扫描指定IP指定端口portx)

$0 192.168.1.0(扫描指定网段,扫描默认端口)

$0 192.168.1.0 portx(扫描指定网段指定端口portx)

******************************************** "

fi

1.测试,扫描特定主机(没有给出端口,扫描默认端口文件)

8053d2e5ce438dec1d76505de41dd1dc.png

2. 测试,扫描特定主机的特定端口

a523f8302dcc5a766322614ad74d925e.png

3. 测试,扫描特定网段(没给端口参数,扫描默认端口文件)  #实验为例减少测试时间只扫描了很小的网段

fb284bf845f2beea73970521772b7dae.png

4.测试,扫描特定网段中哪些主机开放了特定的端口

9ede9584989cec84de7a1d33c76629cd.png

标签:IP,shell,网段,端口扫描,主机,扫描,echo,端口,Linux

来源: https://www.cnblogs.com/yuzly/p/10555886.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值