Archive for the ‘批处理’ Category

批处理统计指定服务器端口TCP连接数及拓展工具编写

星期一, 七月 29th, 2013 28 views

最近要对服务器指定端口进行连接数统计,服务器的一些防火墙自带了此功能,但是有时防火墙对流量影响较大,需要关闭防火墙,因此尝试使用批处理创建一个简单查看工具
首先看核心语句

1
2
@echo off
netstat -an | find ":80 " | find "ESTABLISHED" /c

该语句的意思是在netstat -an 的结果中查找满足”:80″的结果 再在其中查找满足 “ESTABLISHED” 的结果 并/c 统计行数
@echo off 的意思是关闭输入命令的回显
接下来我们可以设置其1秒钟执行一次

1
2
3
4
5
6
:loop

//这里加入待循环的语句
timeout /t 1

go loop

此时即基本满足了对指定端口连接数的实时统计。

接下来将进一步利用批处理建立一个迷你的查看工具,首先是定义一下窗口的大小、字体和背景颜色以及标题:

1
mode cols=40 lines=10 & color 2f & title 标题

上述语句意为设置 列数40 行数10 颜色4f(后续有值说明) 以及标题

关于Color的说明如下:

COLOR [attr]

attr 指定控制台输出的颜色属性

颜色属性由两个十六进制数字指定 — 第一个为背景,第二个则为
前景。每个数字可以为以下任何值之一:

0 = 黑色   8 = 灰色
1 = 蓝色   9 = 淡蓝色
2 = 绿色   A = 淡绿色
3 = 浅绿色   B = 淡浅绿色
4 = 红色   C = 淡红色
5 = 紫色   D = 淡紫色
6 = 黄色   E = 淡黄色
7 = 白色   F = 亮白色

结合一下整体代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
@echo off
mode con cols=40 lines=10 & color 2f & title BeiTown端口连接数查看器
:loop
    cls
    @echo 当前80端口连接数:
    echo.
    echo.
    netstat -an | find ":80 " | find "ESTABLISHED" /c
    echo.
    echo.
    timeout /t 1
goto loop

将此代码保存为bat格式文件,直接执行即可。
效果如图:

在下一节中我们将简述如何将批处理的回显存入变量中用于进一步编程。

本篇先到此,谢谢关注。

BeiTown
2013.07.29