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

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

#/bin/bash

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

#用telnet方式

IP=$1

#IP=119.254.3.28

#获得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 threeIPi 2 2\>\&1 \|grep "Connected to threeIP$i">/dev/null

if [ $? -eq 0 ]

then

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

else

echo "主机threeIPi的$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 threeIPi port 2\>\&1 \|grep "Connected to threeIP$i">/dev/null

if [ $? -eq 0 ]

then

echo "主机threeIPi开放$port端口!" > /home/peter/Ip.txt

else

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

fi

done

done

else

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

for ((i=1;i<=1024;i++))

do

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

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

if [ $? -eq 0 ]

then

echo "主机1开放i端口!" >> /home/peter/Ip.txt

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

相关推荐
祁鱼鱼鱼鱼鱼几秒前
DNS 笔记记录
运维·服务器·网络
tod1134 分钟前
Makefile进阶(上)
linux·运维·服务器·windows·makefile·进程
阳光九叶草LXGZXJ8 分钟前
达梦数据库-学习-50-分区表指定分区清理空洞率(交换分区方式)
linux·运维·数据库·sql·学习
Data_Journal8 分钟前
【无标题】
大数据·服务器·前端·数据库·人工智能
zbliquan10 分钟前
SS928v100远程ubuntu交叉编译开发环境搭建
linux·运维·ubuntu
方芯半导体12 分钟前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
我爱加班、、20 分钟前
new Map()+Array.from()整理elementPlus的级联器数据
linux·前端·javascript
豆是浪个28 分钟前
Linux(Centos 7.6)命令详解:top
linux·运维·服务器
王锋(oxwangfeng)29 分钟前
企业出海网络架构与数据安全方案
网络·架构·自动驾驶
历程里程碑1 小时前
Linxu14 进程一
linux·c语言·开发语言·数据结构·c++·笔记·算法