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

執行結果python

[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

或者能夠跟參數tcp

[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
相關文章
相關標籤/搜索