Как я могу выполнить онлайн сканирование портов только на портах, где я запускаю серверы?
1 ответ
:: uses gnuwin32 sort, grep, sed, cut. You could rename windows sort.exe(could make a copy of sort.exe to windowssort.exe and unlocker lets you delete windows's sort.exe), and use gnuwin32 sort.exe instead.
@ECHO OFF
netstat -aon -p tcp | grep "LISTENING" | grep -o ":[^: ]*" | grep -P ":[0-9]+$" | grep -v "^:0$" | uniq | tr -d '\r' | tr -d '\n' | sed "s/:/,/g" | cut -b 2- | sed "s/,/\r\n/g" | sort -n | tr -d '\r' | tr -s '\n' ','
создает список с разделителями-запятыми, как
29,35,85,115,145,155,163,170
(чтобы узнать, как это произошло, вы могли бы немного узнать о регулярных выражениях, кое-что об используемых командах и попробовать каждую часть за раз, например сначала netstat -aon -p tcp
затем добавьте | grep "LISTENING"
т. д. ). Если бы sed мог найти новые строки, он был бы немного короче, а sed - нет, и если бы tr был более мощным, то было бы немного проще, но tr - нет.
Вы можете поместить этот список портов через запятую в онлайн-сканер портов
например
http://www.t1shopper.com/tools/port-scan/
И если список слишком длинный, поэтому сканирование этих портов в режиме онлайн занимает слишком много времени, тогда вы можете выполнить nmap с этим списком с другого компьютера в вашей локальной сети, и если какой-либо из них открыт, просто выполните сканирование портов онлайн на этих компьютерах. ,
Бесполезно выполнять онлайн-сканирование портов на всех 65535 портах, это займет слишком много времени и бессмысленно делать это, когда вы знаете, что только небольшой процент из них даже запускает сервер, и вы точно знаете, кто они. И бессмысленно просто сканировать «общие порты», когда вы точно знаете, на каких портах вы запускаете серверы, и какие тестировать.