获取某个端口连接数



#!/usr/bin/python

import re
import sys
import string

file = '/proc/net/tcp'

'''
00  "ERROR_STATUS",
01  "TCP_ESTABLISHED",
02  "TCP_SYN_SENT",
03  "TCP_SYN_RECV",
04  "TCP_FIN_WAIT1",
05  "TCP_FIN_WAIT2",
06  "TCP_TIME_WAIT",
07  "TCP_CLOSE",
08  "TCP_CLOSE_WAIT",
09  "TCP_LAST_ACK",
0A  "TCP_LISTEN",
0B  "TCP_CLOSING",
'''

class Tcp_count:
        def get_contents(self,file):
                f = open(file,"r").readlines()
                return f


        def covert_number(self,number):
                value = hex(number)
                return value

        def get_connect(self,port):
                ESTABLISHED = []
                SYN_SENT = []
                SYN_RECV = []
                FIN_WAIT1 = []
                FIN_WAIT2 = []
                TIME_WAIT = []
                CLOSE = []
                CLOSE_WAIT = []
                CLOSING = []
                port    = str(self.covert_number(port)).replace("0x","0").upper()
                for i in  self.get_contents(file):
                        c = i.split()
                        p = re.findall(r":.*%(port)s" % vars(),i)

                        if c[3] == "01" and p:
                                ESTABLISHED.append(c[3])
                        if c[3] == "02" and p:
                                SYN_SENT.append(c[3])
                        if c[3] == "03" and p:
                                SYN_RECV.append(c[3])
                        if c[3] == '04' and p:
                                FIN_WAIT1.append(c[3])
                        if c[3] == '05' and p:
                                FIN_WAIT2.append(c[3])
                        if c[3] == '06' and p:
                                TIME_WAIT.append(c[3])
                        if c[3] == '07' and p:
                                CLOSE.append(c[3])
                        if c[3] == '08' and p:
                                CLOSE_WAIT.append(c[3])
                        if c[3] == '0B' and p:
                                CLOSING.append(c[3])

                return  "ESTABLISHED:\t"   + str(len(ESTABLISHED))+" \nSYN_SENT:\t" + str(len(SYN_SENT))+\
                        "\nSYN_RECV:\t"+str(len(SYN_RECV))+" \nFIN_WAIT1:\t" + str(len(FIN_WAIT1))+\
                        "\nFIN_WAIT2:\t" + str(len(FIN_WAIT2))+ " \nTIME_WAIT:\t" + str(len(TIME_WAIT))+\
                        "\nCLOSE:  \t" + str(len(CLOSE))+" \nCLOSE_WAIT:\t" + str(len(CLOSE_WAIT))+\
                        "\nCLOSING:\t"+str(len(CLOSING))


def get_param(para,number):
        c = 0
        count = 0
        p = []
        try:
                for i in sys.argv:
                        if i == para:
                                p.append(sys.argv[c+1])
                                count+=1
                        c +=1
                        if count == int(number):
                                return string.join(p)

        except Exception:
                return i+' Parameter Error'

def help_():
        print '''
        python %s -p 80,443
        ''' %(sys.argv[0])


p = get_param("-p",1)
if p:
        a = Tcp_count()
        for i in p.split(","):
                try:
                        print "%s PORT TCP CONNECT STATE"%(i)
                        print a.get_connect(int(i))
                        print "\n\n"
                except Exception:
                        pass
else:
        help_()

 

 

 

使用方法:

python 1.py -p 80,443

发个统计连接数的小脚本
$ python 1.py -p 80,443
80 PORT TCP CONNECT STATE
ESTABLISHED:    77644 
SYN_SENT:       0
SYN_RECV:       0 
FIN_WAIT1:      9558
FIN_WAIT2:      8260 
TIME_WAIT:      354354
CLOSE:          0 
CLOSE_WAIT:     0
CLOSING:        0

443 PORT TCP CONNECT STATE
ESTABLISHED:    1180 
SYN_SENT:       0
SYN_RECV:       0 
FIN_WAIT1:      0
FIN_WAIT2:      118 
TIME_WAIT:      2006
CLOSE:          0 
CLOSE_WAIT:     0
CLOSING:        0 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我理解你的问题了。下面我会详细列出负载策略的各个方面。 1. VIP/端口:VIP指的是虚拟IP地址,它是由负载均衡器提供的,用于代表整个业务的入口地址。端口则是指客户端请求的端口号。 2. 服务实地址/端口:服务实地址指的是后端服务的实际地址,端口则是指服务的端口号。 3. 会话保持时间:会话保持时间指的是客户端与后端服务建立连接后,这个连接在负载均衡器上保持的时间。在这个时间内,客户端的请求都会被转发到同一个后端服务上,以保证会话不会被中断。 4. 负载分配策略:负载分配策略是指负载均衡器将请求分配给后端服务的方式。常见的负载分配策略包括轮询、最小连接数、源IP哈希等。 5. 会话保持策略:会话保持策略是指在负载均衡器上如何实现会话保持。常见的会话保持策略包括基于Cookie、URL重写等。 6. SSL加速策略:SSL加速策略是指负载均衡器如何加速通过SSL连接传输的数据。常见的SSL加速策略包括SSL终止、SSL反向代理等。 7. 连接数限制:连接数限制是指负载均衡器对每个客户端的连接数的限制。它可以防止某个客户端占用过多的资源,从而影响其他客户端的正常访问。 8. X-Forword-For配置:X-Forwarded-For是一个HTTP请求头,用于在经过代理服务器时,将真实客户端IP地址传递给后端服务。在负载均衡器上,需要对X-Forwarded-For头进行配置,以便后端服务可以正确地获取客户端的IP地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值