#!/usr/bin/env python#coding:utf8import commandsimport timeimport sysdef 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, printif __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统计小程序代码的详细内容,更多请关注php中文网其它相关文章!
小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。……