首页 > 代码库 > linux 查看TCP连接IP统计小程序

linux 查看TCP连接IP统计小程序

#!/usr/bin/env python
#coding:utf8
import commands
import time
import sys

def main(count_list):
    print "数量\t\tIP地址 \t\t\t连接状态"
    for i in  count_list:
        for x in i.split():
            if len(x) > 14:
                print "%s \t"% x,
            else:
                print "%s \t\t" % x,
        print

if __name__ == __main__:

    if len(sys.argv) >1:

        try:
            while 1:
                command_str = """netstat -tan | grep ‘""" + sys.argv[1] + """‘ |awk ‘{print $(NF-1),$NF}‘ | grep -E ‘[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}‘ | awk -F [\ :] ‘{print $(NF-2),$NF}‘ | awk ‘{ip[$0]++}END{for ( i in ip) print ip[i],i | "sort -nr | head -n 20" }‘ 2>/dev/null """
                count_list =  commands.getstatusoutput(command_str)[1].split("\n")
                main(count_list)
                time.sleep(5)
                print
                print "-----------------------------------------------------"
        except:
            pass

    else:

        try:
            while 1:
                command_str = """netstat -tan|awk ‘{print $(NF-1),$NF}‘ | grep -E ‘[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}‘ | awk -F [\ :] ‘{print $(NF-2),$NF}‘ | awk ‘{ip[$0]++}END{for ( i in ip) print ip[i],i | "sort -nr | head -n 20" }‘ 2>/dev/null """
                count_list =  commands.getstatusoutput(command_str)[1].split("\n")
                main(count_list)
                time.sleep(5)
                print
                print "-----------------------------------------------------"
        except:
            pass

执行结果

[root@duyunlong-100-70test]# tcpcheck 
数量        IP地址                 连接状态
313        172.16.6.11         ESTABLISHED         
189        172.16.6.13         ESTABLISHED         
176        172.16.6.12         ESTABLISHED         
64         172.16.100.50       ESTABLISHED         
50         172.16.100.51       ESTABLISHED         
43         172.16.3.20         ESTABLISHED         
31         172.16.1.64         ESTABLISHED         
31         172.16.1.62         ESTABLISHED         
31         172.16.1.61         ESTABLISHED         
30         172.16.4.20         ESTABLISHED         
30         172.16.3.81         ESTABLISHED         
30         172.16.3.80         ESTABLISHED         
30         172.16.3.66         ESTABLISHED         
30         172.16.3.21         ESTABLISHED         
30         172.16.1.65         ESTABLISHED         
30         172.16.1.63         ESTABLISHED         
30         172.16.1.60         ESTABLISHED         
30         172.16.1.103        ESTABLISHED         
30         172.16.1.102        ESTABLISHED         
30         172.16.1.101        ESTABLISHED

或者可以跟参数

[root@duyunlong-100-70test]# tcpcheck TIME_WAIT
数量        IP地址                 连接状态
15         172.16.3.21         TIME_WAIT         
15         172.16.3.20         TIME_WAIT         
2          172.16.6.24         TIME_WAIT

linux 查看TCP连接IP统计小程序