标题: [网络连接] 谁可以解释下批处理版QQ好友IP查看器? [打印本页]
作者: kevinm 时间: 2009-12-11 21:56 标题: 谁可以解释下批处理版QQ好友IP查看器?
- echo off
- Title QQ好友IP查看器 by:ghost98
- color 02
- mode con cols=90 lines=30
- :begin
- cls
- echo.
- echo.
- tasklist | findstr "QQ.exe">QPID.log
- for /f "tokens=2 delims= " %%a in (QPID.log) do (echo %%a>QPID.log&set /p
- QPID=<QPID.log&del /f /q QPID.log)
- echo.
- echo.
- echo 协议 本地IP:端口 对方IP:端口 连接状态 进程号
- echo.
- netstat /ano | findstr "%QPID%"
- echo.
- echo.
- pause
- goto begin
复制代码
作者: neorobin 时间: 2009-12-11 23:51
tasklist 的输出示例
C:\>tasklist
图像名 PID 会话名 会话# 内存使用
========================= ====== ================ ======== ============
System Idle Process 0 Console 0 28 K
System 4 Console 0 316 K
SMSS.EXE 748 Console 0 404 K
CSRSS.EXE 812 Console 0 5,844 K
WINLOGON.EXE 836 Console 0 3,044 K
SERVICES.EXE 880 Console 0 3,900 K
运行下面的, 你可以看到一批 *.exe 的进程信息- tasklist | findstr ".exe">QPID.log & notepad qpid.log
复制代码
如果运行的是下面的 (tasklist | findstr /i "qq.exe">QPID.log 注意: 参数 /i 的重要性, 你贴的原始代码中没有这个参数, 那样不能忽略大小写)- tasklist | findstr /i "qq.exe">QPID.log
- notepad qpid.log
复制代码
在记事本里可看到一或几行 *QQ.exe 的进程信息, 再运行下面的- for /f "tokens=2 delims= " %a in (QPID.log) do (echo %a>QPID.log&set /p qpid=<qpid.log)
- write qpid.log
- echo qpid=%qpid%
复制代码
你可以看到记事本打开的文件中 第一行(可能只有一行) 就是 *qq.exe 后面有它的 PID
*qq.exe 和它后面的 PID 之间有若干空格(delims= " 指定令牌分隔符为空格), 这就让 *QQ.exe 成为第一个令牌, 而 PID 值成为第二个令牌,
(tokens=2 指定只取第 2 个令牌)- for /f "tokens=2 delims= " %a in (QPID.log) do (echo %a>QPID.log)
复制代码
这一句让 QPID.LOG 在 %a 取得第二个令牌的值即 *QQ.exe 的 PID 时, 把这个值输出到 QPID.LOG 文件中, 得以更新,当然这一句复制代码
是在文件更新后同步立即执行的. 你可以看到, 在(命令行直接粘贴)运行上面的几段代码后, 记事本打开的文件中有一或几行信息, 而写字板打开的文件中 只会有一个数字,
这个数字就是 *QQ.exe 的 PID (进程ID)
接下来, 这一句复制代码
将更新后的 QPID.LOG 文件中的数据即唯一的一个 PID 的值 赋给了 变量 QPID,
在命令行里, 你可以看到 qpid=nnn (nnn 代指一个不确定的数字)
接下来就是 netstat 的任务了, 代码中用了下面 3 个参数, 你也可以 netstat /? 自己看说明
-a 显示所有连接和监听端口。
-n 以数字形式显示地址和端口号。
-o 显示与每个连接相关的所属进程 ID。
到这里, 我想你该明白了.
[ 本帖最后由 neorobin 于 2009-12-12 00:48 编辑 ]
作者: kevinm 时间: 2009-12-12 13:39
解释的非常好 非常感谢
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |