windows 下netstat命令

时间:2024-01-29 15:08:21

目标:在windows下查看当前机器某个netstat状态或端口的使用情况

 

-----如何查看

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID, 之后在任务管理器中找到这个PID所对应的程序。如果任务管理器中没有PID这一项,可以在任务管理器中选"查看"-"选择列"。

1.查看所有的端口占用情况

C:\>netstat -ano

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:1434         0.0.0.0:0              LISTENING       3236
  TCP    127.0.0.1:5679         0.0.0.0:0              LISTENING       4168 

2.查看指定端口的占用情况
C:\>netstat -aon|findstr "9050"

  协议    本地地址                     外部地址               状态                   PID

  TCP    127.0.0.1:9050         0.0.0.0:0              LISTENING       2016

P: 看到了吗,端口被进程号为2016的进程占用,继续执行下面命令: (也可以去任务管理器中查看pid对应的进程)

3.查看PID对应的进程
C:\>tasklist|findstr "2016"

 映像名称                       PID 会话名              会话#       内存使用
 ========================= ======== ================
  tor.exe                     2016 Console                 0     16,064 K

P:很清楚吧,tor占用了你的端口。 

4.结束该进程

C:\>taskkill /f /t /im tor.exe

 

-----如何统计

当我们在命令行环境中工作时,能计算其它工具输出内容的行数有时候是很有用的。很多Unix/Linux操作系统包含一个叫wc的工具,这个工具有可以接受不不少选项,

在Windows上没有类似的这个工具的替代品,但是Windows CMD提示符中存在一个可以实现差不多功能的工具。

在此,我们会明白如何用FIND在cmd中计算行数。 这个工具,实际上跟Unix系统的grep比较像,而且早就存在在Windows操作系统上(Dos时代就有了)。

 

例如,假设有个Windows Server,我们想知道当前有多少个TCP sessions处于激活(Active)状态, 我们可以用netstat命令,将这个命令的输出重定向给FIND命令来获得状态为established sessions的行,命令如下:

C:\Users\Administrator>netstat -nao | find /i "estab"
TCP 11.137.137.160:3389 11.205.240.128:52823 ESTABLISHED 1392
TCP 127.0.0.1:14021 127.0.0.1:14022 ESTABLISHED 3804
TCP 127.0.0.1:14022 127.0.0.1:14021 ESTABLISHED 3804

 

上面那个命令的输出可能会有很多行,也许我们关心的只是输出的sessions的数量,只要在上面的命令行填一个/c的命令开关,就可以得到TCP 处于激活状态的sessions了。

C:\Users\Administrator>netstat -nao | find /i "estab"
  TCP    11.137.137.160:3389    11.205.240.128:52823   ESTABLISHED     1392
  TCP    127.0.0.1:14021        127.0.0.1:14022        ESTABLISHED     3804
  TCP    127.0.0.1:14022        127.0.0.1:14021        ESTABLISHED     3804

C:\Users\Administrator>netstat -nao | find /i "estab" /c
3

 

使用类似方式可实现,比如:

1、显示本地缓存的dns记录。

C:\Users\Administrator>ipconfig /displaydns | find /i "Name" /c 
5

2、/c选项也可以用来计算命令输出的所有行。

例如,我们可能想知道在活动目录中的组数。将之前命令的输出结果定向给 FIND /v "" /c (它的意思是看下所有不包含字符串""的行),

也就是说,计算所有行!

通过使用/v “” ,我们会查询到所有非空行,这在输出的所有字符串非常不同的情况下很有用。相当于于unix上的wc -l。

C:\Users\Administrator>netstat -ano|find /v "" /c 
84

 

3、Event Logger命令(wevtutil)会输出很多行,如果只想知道在当前机器上不同日志的数量,只需要将他们的输出重定向给FIND /v "" /c即可。

4、统计一个文件中某个关键词的行数。

有一个日志文件,文件中可能有上千行相似内容,我们想快速的知道包含某个关键词的行数:

TYPE C:\Windows\Schedlgu.txt | FIND /i “task failure” /c  

 

 

 

 

参考并转载自:

1、windows下用cmd命令netstat查看系统端口使用情况

2、在Windows cmd中计算行数

3、