Linux有nmap命令可以实现UDP端口探测的问题,Java代码无法实现。此脚本基于nmap命令,nmap安装教程在本站:https://cloud.tencent.com/developer/article/2170423
代码语言:javascript复制#!/bin/bash
host=$1
port=$2
#nmap端口扫描命令示例
# nmap -sU www.baidu.com -p 54880-54889
# nmap -sU www.baidu.com -p 54230
result=$(nmap -sU $host -p $port | grep -w "open" | awk '{print $2}')
if [ "$result" == "open|filtered" ]; then
echo "1"
else
echo "0"
fi
返回1代表正常,0代表端口关闭。
脚本使用方式
比如:脚本文件名叫udpKeepAlive.sh
代码语言:javascript复制【参数示例】
sh ./udpKeepAlive.sh [HOST] [PORT]
【运行示例】
sh ./udpKeepAlive.sh www.baidu.com 80
本脚本尚未支持多端口扫描,我是基于单个(动态:给予脚本入参实现)探索UDP端口的是否开放的。使用Java处理脚本返回多个脚本sh、cmd、bat等内容不是很方便处理。如果只是一个端口的信息正常返回,且返回1、0就能很轻松处理脚本执行结果,这才是我的初衷!