Board logo

标题: 端口查询程序 [打印本页]

作者: PPdos     时间: 2008-6-20 22:30    标题: 端口查询程序

测试环境XPsp2, 系统自带netstat命令
CODE:  [Copy to clipboard]
:lol 此为端口查询程序,测试环境XPsp2 PPdos@cn-dos.net
@echo off
setlocal enabledelayedexpansion
set /p port="输入要查询的端口:"
(netstat -an|find ":%port%")||(echo 端口未使用&pause&cls&goto :lol)
set n=0&set m=0&title 请稍等...
for /f "eol=C skip=4 tokens=1-7 delims=: " %%i in ('netstat -anvb') do (
                       
                        set a=%%i
                        if "!a:~-1!"=="]" set /a n+=1&set k!n!=%%i
                        if "!a!"=="TCP" (set /a m+=1&set d!m!=%%i&set b!m!=%%k&set c!m!=%%o)
                        if "!a!"=="UDP" (set /a m+=1&set d!m!=%%i&set b!m!=%%k&set c!m!=%%n)
                        if "%%k"=="%port%" set PPdos=!m!
)
title 显示结果
echo !d%PPdos%!协议  !b%PPdos%!端口  PID:!c%PPdos%!  程序名:!k%PPdos%!
pause
cls&goto :lol

作者: plp626     时间: 2008-6-20 22:49
不错,
只是netstat -anvb 这个速度有点慢
作者: pusofalse     时间: 2008-6-20 23:00
貌似效率有点问题啊。。
这是我的代码。。
---
在修改一下
CODE:  [Copy to clipboard]
@echo off
:1
cls
set/p port=
if not defined port goto 1
echo %port%|findstr /i /v "[a-z]">nul||goto 1
netstat  -ano|findstr ":%port%">nul||(echo 无此端口&goto 1)
call :lp tcp 7
call :lp udp 6
pause>nul&goto 1
:lp
for /f "skip=4 tokens=3,%2 delims=: " %%a in ('netstat -anop %1') do (
        echo %%a|findstr /x "%port%">nul&&(echo %1 %port%端口信息&tasklist /fi "pid eq %%b"&echo.)
)
[ Last edited by pusofalse on 2008-6-20 at 11:09 PM ]
作者: PPdos     时间: 2008-6-20 23:23
需要说明的是:此程序中没有用到第三方程序 对于没有tasklist的用户也可以运行
作者: terse     时间: 2008-6-21 00:33
借鉴
CODE:  [Copy to clipboard]
@echo off
:st
set/p tcp="输入要查询的端口:"
cls
netstat -an|findstr ":%tcp%">nul||(echo 端口未使用&goto st)
for /f "tokens=1-7 delims=: " %%i in ('netstat /ano^|findstr ":%tcp%"') do (
if /i "%%i"=="TCP" (echo %tcp%端口信息&Tasklist /FI "PID eq %%o")else echo %tcp%端口信息&Tasklist /FI "PID eq %%n"
)
pause&exit/b

作者: PPdos     时间: 2008-6-21 02:26
其实这个程序我写的可真够头大的 还好坚持写完了 乐~




欢迎光临 中国DOS联盟论坛 (http://cndos.fam.cx/forum/) Powered by Discuz! 2.5