windows命令行统计端口的连接数

      习惯了linux的系统管理员,对linux的命令行工具总是印象极深,几乎所有的管理都可以在命令行下完成。命令行工具是linux系统管理的主流。

       而使用windows是,因为图形化的界面,大家习惯了图形化的管理,但很多时间会发现,在图形界面下缺少很多管理功能,一些在linux下很简单的管理功能,在windows下很难实现。很多人为了解决这个问题,上网寻找各种不同的工具软件,有不少可能根本就找不到,于是报怨windows管理弱。其实windows下也有许多很有用的命令行工具,能够实现很多如同linux下的管理和监控功能,只不过因为windows有一个傻瓜化的图形化管理界面,大家不再花力气去学习和了解这些命令行工具而已。其实对windows(尤其是windows server)系统管理员而言,学会使用windows命令行工具应该是必须的事情,不然还真是很难做好系统管理,就算你有很强的开发能力,能够自己编程开发各种图形化管理软件,即使这样,如果微软不开放某些接口,你想开发也没辙。

       某天一个朋友想要掌握他的应用软件客户的连接数情况,软件本身没有提供相应监控,这个活在linux只要使用netstat很简单就可以解决,可在windows下,想了很久,也没找到办法。网上也没搜到相应软件。遇到我顺便问起,我记得windows下也有相应的netstat软件,加上-an选项后能够列出所有连接,然后只要过滤和统计一下就可以。

       在linux下使用grep统计表,命令如下 netstat -an|grep xxx.xxx.xxx.xxx:端口 -c

可以直接输出统计结果。在windows命令行下没有grep命令,但有相似的find命令

       语法为

            find  [/v] [/c] [/n] [/i] [/ 关闭 [行]]""[[:] [] [...]]
几个参数说明如下:

/v

显示不包含指定的 的所有行。

/c

对包含指定的 的行进行计数,并显示总计。

/n

在前面的每个行与该文件的行号。

/i

指定搜索不区分大小写。

[/ 关闭 [行]]

不跳过具有脱机属性设置的文件。

""

必需。指定要搜索的字符 (括在引号) 的组。

[:][]

指定要在其中搜索指定字符串的文件的名称和位置。

/?

在命令提示符下显示帮助。

 所以在windows下实现统计某个端口的连接数命令为:

netstat -an|find "xxx.xxx.xxx.xxx:端口" |find  "ESTABLISHED" /c 

注意1、find命令搜索的字符串要用双引号括起,这点与grep 不同。

       2、ESTABLISHED 是已经建立起的连接,过滤了关闭的,等待的等状态。

由此可见,windows命令行功能也很强大,只要会用,一样可以在系统管理中起到大的作用。

与find命令相似的还有findstr,搜索的字符串不需要用双引号括起。但这个命令没有计数的功能。这里使用不合适。   

相关推荐