Board logo

标题: DOS命令扫描网段的端口 [打印本页]

作者: uiopuiop     时间: 2007-10-13 19:52    标题: DOS命令扫描网段的端口

不需要任何工具,DOS命令扫描一个网段的全部端口!在Windows2000下开一个DOS窗口,然后执行 for /l %a in (1,1,254) do start /min /low telnet 192.168.0.%a 3389
  

这样192.168.0.x这个段的所有开放3389端口得主机都会暴露。

这条命令执行后,会在任务栏开254个小窗口。然后telnet链接失败的窗口会在大约5秒后自动退出,剩下的窗口就是相对应开放端口的主机了。

看一下小窗口的标题可以得知主机的ip地址,如果你觉得机器性能很好的话 可以把/low参数去了。

现在扫描一台主机的多个端口,如下


for /l %a in (1,1,65535) do start /low /min telnet 192.168.0.1%a
  

这样就扫描192.168.0.1的1到65535端口。

现在扫描一个网段的所有端口


for /l %a in (1,1,254) do for /l %b in (1,1,65535) do start /low/min telnet 192.168.0.%a %b
  

这样就会扫描192.168.0.x段的全部1到65535段口。

以上命令只能在Windows2000下使用,因为/l累加参数是Windows2000对for的扩展,当然WindowsXP和Windows.NET都可以用,WindowsME我没有试过,因为没有WindowsME的机器。
作者: uiopuiop     时间: 2007-10-13 19:53
问题是有没有办法让TELNET 不跳出窗口,并扫描端口呢? 期待有高手写出这样的BAT.
作者: lxmxn     时间: 2007-10-13 21:14
start命令的帮助,里面有一个/B参数。
作者: uiopuiop     时间: 2007-10-13 21:54
试了 telnet 71.95.7.199 80 >nul
echo %errorlevel%

不管IP是什么结果总是-1, 晕 ~~

看样子只好使用NMAP类似的工具了,但NMAP 的缺点是需要先安装WinPcap:
http://www.pcicp.com/tech/system ... 00090062d155_2.html

[ Last edited by uiopuiop on 2007-10-13 at 09:56 PM ]
作者: uiopuiop     时间: 2007-10-13 22:16    标题: 端口扫描工具——Portqry

Portqry是命令行下用来解决传输控制协议/网际协议连通性问题的基本扫描工具,它基于Windows 2000 或者更高版本。很多IT 专业人员十分精通Telnet,用它来测试网络的畅通性和解决端口的。但是,Telnet在端口测试时有它的局限性。例如,它不能确定是否端口正被过滤,并且它不能像LDAP 或者RPC一样测试UPD 传输性。这正是Portqry值得在这里介绍的地方。使用Portqry可以解决微软公司Exchange Servers的基本传输控制协议/网际协议连通性。在有防火墙的环境里,也能使用Portqry 判断传输控制协议/网际协议的连通性。

下载地址
http://download.microsoft.com/do ... e09c9/PortQryV2.exe

正在写一个批处理,来扫描批量IP地址的端口。。。。。

@echo off
@portqry -n myserver.reskit.com -e %1 -p tcp -q

@if errorlevel = 2 goto end
@if errorlevel = 1 goto end
@if errorlevel = 0 goto success

:success
@Echo Port %1 is listening
goto end

:end

[ Last edited by uiopuiop on 2007-10-13 at 10:29 PM ]
作者: uiopuiop     时间: 2007-10-13 22:20    标题: 还是老外先想到了

详解:
http://support.microsoft.com/kb/832919/zh-cn
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

FOR /F "eol=; tokens=1,2 delims=," %%I IN (machines.csv) DO CALL :PORT %%I %%J
GOTO END

:PORT
PortQry -n %1 -p TCP -e 135 -q -l "%2.log"

:END

~~~~~~~~machines.csv~~~~~~~~~~~~~~
10.1.0.11,HostName1
10.1.0.25,HostName2

[ Last edited by uiopuiop on 2007-10-13 at 10:46 PM ]