博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对"查看进程使用的端口"工具小析
阅读量:5823 次
发布时间:2019-06-18

本文共 1208 字,大约阅读时间需要 4 分钟。

看后很受启发,来共享一下

 
  1. @echo off   
  2. color a   
  3. Title XP端口-进程查询   
  4. setlocal enabledelayedexpansion   
  5. echo ╔-                              -╗   
  6. echo   本机开放的端口及使用该端口的进程   
  7. echo ╚-                              -╝   
  8. echo ------------------------------------   
  9. echo          端口号           进程名称         
  10. ECHO TCP协议:   
  11. ::利用netstat命令找出使用TCP协议通信的端口,并将结果分割;   
  12. ::将第二个参数(IP加端口)传给%%i,第五个参数(PID号)传给%%j;   
  13. for /F "usebackq skip=4 tokens=2,5" %%i in (`"netstat -ano -p TCP"`) do (   
  14.   call :Assoc %%i TCP %%j   
  15.   echo           !TCP_Port!           !TCP_Proc_Name!    
  16. )   
  17.  
  18. ECHO UDP协议:   
  19. for /F "usebackq skip=4 tokens=2,4" %%i in (`"netstat -ano -p UDP"`) do (    
  20.   call :Assoc %%i UDP %%j   
  21.   echo           !UDP_Port!           !UDP_Proc_Name!   
  22. )   
  23. echo 按任意键退出   
  24. pause>nul   
  25.  
  26. :Assoc   
  27. ::对%1(第一个参数)进行分割,将第二个参数传给%%e。在本程序中,%1即为上面的%%i(形式为:IP:端口号)   
  28. for /F "tokens=2 delims=:" %%e in ("%1") do (   
  29.     set  %2_Port=%%e   
  30.   )   
  31. :: 查询PID等于%3(第三个参数)的进程,并将结果传给变量?_Proc_Name,?代表UDP或者TCP;   
  32. for /F "skip=2 usebackq delims=, tokens=1" %%a in (`"Tasklist /FI "PID eq %3" /FO CSV"`) do (   
  33.    ::%%~a表示去掉%%a外面的引号,因为上述命令的结果是用括号括起来的。    
  34.    set %2_Proc_Name=%%~a   
  35.   )  

乍一看觉得很复杂,仔细看看,其实作者只用了两个命令:netstat -ano -p和for的循环切割,大家可以去DOS中试试netstat -ano -p看看是什么效果,能看到很多关于进程、端口、协议的信息,只要合理的分割就能达到作者的效果,这个例子中还有很多值得学习的地方,比如setlocal enabledelayedexpansion变量延迟,对于这个代码而言也就是说凡是要在for语句后,再次调用你原先定义的变量你就要用变量延迟,这个还需要慢慢理解。

本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/416083,如需转载请自行联系原作者

你可能感兴趣的文章
iOS 绝对路径和相对路径
查看>>
使用Openfiler搭建ISCSI网络存储
查看>>
学生名单
查看>>
(转) 多模态机器翻译
查看>>
【官方文档】Nginx负载均衡学习笔记(三) TCP和UDP负载平衡官方参考文档
查看>>
矩阵常用归一化
查看>>
Oracle常用函数总结
查看>>
【聚能聊有奖话题】Boring隧道掘进机完成首段挖掘,离未来交通还有多远?
查看>>
考研太苦逼没坚持下来!看苑老师视频有点上头
查看>>
HCNA——RIP的路由汇总
查看>>
zabbix监控php状态(四)
查看>>
实战Django:小型CMS Part2
查看>>
原创]windows server 2012 AD架构试验系列 – 16更改DC计算机名
查看>>
统治世界的十大算法
查看>>
linux svn安装和配置
查看>>
SSH中调用另一action的方法(chain,redirect)
查看>>
数据库基础
查看>>
表格排序
查看>>
关于Android四大组件的学习总结
查看>>
java只能的round,ceil,floor方法的使用
查看>>