端口扫描 shell脚本
时间: 2023-10-12 11:10:33 浏览: 196
以下是一个简单的 Bash 脚本,用于执行端口扫描:
```
#!/bin/bash
host="$1"
startport="$2"
endport="$3"
for ((port=startport;port<=endport;port++))
do
(echo >/dev/tcp/$host/$port) >/dev/null 2>&1 && echo "$port open"
done
```
要使用该脚本,请按照以下方式运行:
```
./portscan.sh <host> <startport> <endport>
```
其中 `<host>` 是要扫描的主机, `<startport>` 和 `<endport>` 是要扫描的端口范围。例如,要扫描主机 `example.com` 的端口 80 到 100,可以执行以下命令:
```
./portscan.sh example.com 80 100
```
请注意,此脚本仅检查端口是否打开,而不会尝试建立连接或进行其他交互。在某些情况下,这可能会误报一些端口为开放状态,因此请谨慎使用。
相关问题
写个扫描主机端口的shell脚本
好的,下面是一个简单的扫描主机端口的Shell脚本:
```bash
#!/bin/bash
# 输入需要扫描的主机地址
read -p "请输入需要扫描的主机地址:" host
# 输入需要扫描的端口号范围
read -p "请输入需要扫描的端口号范围(如:1-100):" port_range
# 将端口号范围分解为起始端口和结束端口
start_port=$(echo $port_range | cut -d '-' -f 1)
end_port=$(echo $port_range | cut -d '-' -f 2)
# 循环扫描端口
for ((port=$start_port; port<=$end_port; port++))
do
# 使用nc命令测试端口是否开放
nc -z -w 1 $host $port &>/dev/null
# 判断端口是否开放,输出结果
if [ $? -eq 0 ]; then
echo "Port $port is open on $host."
else
echo "Port $port is closed on $host."
fi
done
```
使用方法:
1. 在终端中执行 `vi scan_port.sh` 创建一个名为 `scan_port.sh` 的Shell脚本文件;
2. 将上述代码复制到 `scan_port.sh` 文件中,并保存退出;
3. 在终端中执行 `chmod +x scan_port.sh` 赋予脚本执行权限;
4. 在终端中执行 `./scan_port.sh` 运行脚本;
5. 按照提示依次输入需要扫描的主机地址和端口号范围,脚本会自动扫描指定主机的指定端口范围,并输出扫描结果。
使用bashshell脚本,完成输入特定IP地址,完成扫描该IP地址的所有端口号,返回开启的端口号。(不能使用nmap)
好的,以下是一个简单的脚本可以实现该功能:
```
#!/bin/bash
# 获取IP地址
read -p "请输入要扫描的IP地址:" ip
# 扫描端口
for (( port=1; port<=65535; port++ ))
do
# 使用telnet尝试连接端口
(echo >/dev/tcp/$ip/$port) >/dev/null 2>&1 && echo "端口 $port 开启"
done
```
使用方法:在终端中输入 `bash 脚本文件名.sh`,然后根据提示输入要扫描的IP地址即可。
该脚本使用循环逐一尝试连接每一个端口,如果连接成功(即端口开启),则输出该端口号。注意,该脚本可能需要一些时间才能完成扫描,具体时间取决于所扫描的IP地址和网络环境。
阅读全文