#!/bin/bash

# 檢查是否提供了 IP 地址作為參數
if [ -z "$1" ]; then
  echo "用法: $0 <target_ip> [output_file]"
  exit 1
fi

TARGET_IP=$1
OUTPUT_FILE=$2

# 執行全端口掃描，將結果保存到臨時文件中
echo "開始全端口掃描目標 $TARGET_IP ..."
sudo nmap -p- $TARGET_IP -oN all_ports_scan.txt

# 提取開放端口
echo "提取開放端口..."
open_ports=$(grep "open" all_ports_scan.txt | awk -F/ '{print $1}' | tr '\n' ',' | sed 's/,$//')

# 檢查是否有開放端口
if [ -z "$open_ports" ]; then
  echo "沒有找到開放端口。"
  rm -f all_ports_scan.txt
  exit 1
fi

echo "開放端口: $open_ports"

# 構建詳細掃描命令
SCAN_COMMAND="sudo nmap -A -p $open_ports $TARGET_IP"

# 執行詳細掃描並處理輸出
if [ -n "$OUTPUT_FILE" ]; then
  echo "開始詳細掃描開放端口 $open_ports，並將結果輸出到 $OUTPUT_FILE ..."
  $SCAN_COMMAND -oN "$OUTPUT_FILE"
else
  echo "開始詳細掃描開放端口 $open_ports ..."
  $SCAN_COMMAND
fi

# 清理臨時文件
rm -f all_ports_scan.txt

echo "掃描完成。"

