年后一直都没在t00ls发帖子了,看到有人用python写了个扫描域名状态的帖子(其实就是扫端口的),杀鸡用不着牛刀哈
我们windows系统早就给我们准备好了扫端口的工具telnet,此工具可以过一些防火墙,比一些socket去连接端口的工具强多了
好吧,看图吧
直接运行 scan.bat会显示帮助信息
这里没啥多说的了,看效果,多端口扫描请用英文的点号相隔,设置的端口扫描完成后需等待30秒扫下一个端口(比如这里21端口全部扫完30秒后开始扫80端口)
其它的就没啥多说了,运行环境win10 由于是bat脚本,只需要开启telnet客服端即可
代码如下
@echo off set Cms=%* setlocal enabledelayedexpansion set files="" set ports="" color 06 title telnet-scan端口扫描工具 by LIANAN(QQ:352889950) if not defined Cms goto main ::-----------------参数分离开始----------------------------------- if "%1" == "-l" ( set files=%2 ) if "%1" == "-d" ( goto del_history ) if "%3" == "-l" ( set files=%4 ) if "%1" == "-p" ( set ports=%2 ) if "%3" == "-p" ( set ports=%4 ) echo %ports% echo %files% ::-----------------参数分离结束----------------------------------- ::计算域名总数 set /a num=0 for /f %%i in (%files%) do ( set /a num=!num!+1 ) ::----------------------开始扫描---------------------------------- set /a a=1 :sxh set port="" for /f "tokens=%a% delims=." %%i in ('echo %ports%') do ( set port=%%i set /a a=%a%+1 ) if !port! NEQ "" ( echo --------------------程序正在扫描 !port! 端口,请稍后--------------------------------- ::设置扫描到第几个域名 set /a nm=0 ::设置提示保存 set /a tib=0 for /f %%b in (%files%) do ( start /min cmd.exe /k "echo q|telnet %%b !port!&exit" timeout /NOBREAK /t 1 >nul set pd="" for /f "tokens=1 delims= " %%a in ('tasklist /FI "windowtitle eq Telnet %%b"^|findstr "cmd.exe"') do ( set pd=%%a ) if !pd! EQU "" ( echo %%b !port! Open echo %%b>>!port!_Open.txt set /a tib=1 ) else ( echo %%b !port! Close ) set /a nm=!nm!+1 title telnet-scan端口扫描工具 进度 !nm!/!num! ) if !tib! == 0 ( echo -------------------------端口 !port! 扫描完毕----------------------------------------- ) else ( echo -------------------------端口 !port! 扫描完毕,保存为 !port!_Open.txt----------------------- ) timeout /NOBREAK /t 35 >nul goto sxh ) else ( goto tc ) ::----------------------扫描结束---------------------------------- :del_history echo 正在删除历史扫描记录,请稍后....... for /l %%i in (1,1,10000) do ( del /f /q %%i_Open.txt 1>nul 2>nul ) echo 删除完毕!!! goto tc :main mode con: cols=125 lines=45 echo _ _ _ echo ^| ^|_ ___^| ^|_ __ ___^| ^|_ ___ ___ __ _ _ __ echo ^| __^/ _ ^\ ^| ^'_ ^\ ^/ _ ^\ __^|____^/ __^|^/ __^/ _^` ^| ^'_ ^\ echo ^| ^|^| __^/ ^| ^| ^| ^| __^/ ^|^|_____^\__ ^\ ^(_^| ^(_^| ^| ^| ^| ^| echo ^\__^\___^|_^|_^| ^|_^|^\___^|^\__^| ^|___^/^\___^\__^,_^|_^| ^|_^| echo. echo ^<options^>: echo -l list :域名列表文件 echo -p port :要扫描的端口 echo -d del :删除保存的历史记录(开放的端口号.txt) echo. echo ^<Example^>: echo scan.bat -l c:\host.txt -p 21 echo scan.bat -l c:\host.txt -p 21.80.3389.1433 echo. :tc
本文作者为Mr.Wu,转载请注明,尊守博主劳动成果!
由于经常折腾代码,可能会导致个别文章内容显示错位或者别的 BUG 影响阅读; 如发现请在该文章下留言告知于我,thank you !