Board logo

标题: [网络连接] 批处理判断指定进程是否连接远程指定端口 [打印本页]

作者: zll855    时间: 2017-1-7 17:54     标题: 批处理判断指定进程是否连接远程指定端口

本帖最后由 zll855 于 2017-1-20 00:52 编辑

批处理判断指定进程是否连接远程指定端口
如使用批处理如何判断进程java.exe 是否连接了远程ip的8080和80端口

最好不借助第三方程序
作者: CrLf    时间: 2017-1-7 18:23

netstat -ano,然后对比右侧 pid
作者: zll855    时间: 2017-1-20 00:53

那位大神可以写个快捷的代码
作者: codegay    时间: 2017-1-20 02:15

厉害了,就这个问题,十多天了,还要别人写代码。
作者: zll855    时间: 2017-1-21 14:48

回复 4# codegay


   我搞不定啊
作者: bbaa    时间: 2017-1-26 19:52

本帖最后由 bbaa 于 2017-1-28 13:27 编辑
  1. @Rem Made By:Bbaa
  2. @Echo off
  3. @setlocal enabledelayedexpansion
  4. @Rem Demo
  5. :Begin
  6. Rem 获取ip地址.......
  7. Set IP=
  8. Set /p IP=请输入监视IP:
  9. Rem 监视端口列表
  10. Set 端口列表_计数=1
  11. For %%i In (
  12.         "80"
  13.         "8080"
  14. ) Do (Set "___端口列表___!端口列表_计数!=%%~i"&Set /a 端口列表_计数+=1)
  15. :Get_1
  16. Set Pid列表_计数=1
  17. Rem 获取java.exe Pid
  18. For /f "Tokens=1,2 Delims=:" %%i in ('Tasklist /FI "ImageName eq java.exe" /FO list') do (
  19.         Rem 获取Pid
  20.         If /i "%%~i"=="Pid" (
  21.                 Set "Pid=%%~i"
  22.                 Set "Pid=!Pid: =!"
  23.                 Set "___Pid列表___!Pid列表_计数!=!Pid!"
  24.                 Set /a Pid列表_计数+=1
  25.         )
  26. )
  27. Rem 获取java.exe Pid End
  28. If Not  Defined ___Pid列表___1 (Echo 貌似你没有运行java.exe +_+&PAUSE>nul&exit)
  29. Rem 获取端口列表
  30. set 显示列表_计数=1
  31. For /f "Tokens=1,3,5" %%i In ('Netstat -ano') Do (
  32.         If /i "%%~i"=="TCP" (
  33.                 Rem 判断监视Ip
  34.                 If "!IP!"=="%%j" (
  35.                         For /f "Tokens=2 Delims=:" %%a In ("%%j") do (
  36.                                 For /f "Tokens=2 Delims==" %%b In ('Set ___端口列表___') Do (
  37.                                         If %%a==%%b (
  38.                                                 Rem 验证Pid
  39.                                                 For /f "Tokens=2 Delims==" %%c In ('Set ___Pid列表___') Do (
  40.                                                         If "%%k"=="%%c" (set "___显示列表___!显示列表_计数!=java.exe Pid:%%k 占用端口:%%b"&set /a 显示列表_计数+=1)
  41.                                                 )
  42.                                         )
  43.                                 )
  44.                         )
  45.                 )
  46.         )
  47. )
  48. :Show
  49. If Defined  ___显示列表___1 (
  50. For /f "Tokens=2 Delims==" %%b In ('Set ___显示列表___') Do (Echo;%%b)
  51. ) Else (echo java未连接端口)
  52. pause>nul&exit
复制代码
做完了O(∩_∩)O~~
PS:这贴还会有人么..........




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2