#!/bin/bash
# 获取本机的网卡列表,并使用awk计算出本机的网卡数量
local_ifaces=$(ifconfig | awk -F: '/^[a-z]/ !/^lo/ {print $1}')
local_iface_count=$(echo "$local_ifaces" | wc -l)
#使用netstat 命令列出所有ESTABLISHED的TCP连接
tcp_conns=$(netstat -n -t | awk '/^tcp/ {print $5}')
#初始化计数器
max_ip=""
max_count=0
#遍历所的TCP连接
for ip_and_port in $tcp_conns; do
#使用awk分离出IP地址
ip=$(echo "$ip_and_port" | awk -F: '{print $1}')
if [ `echo ${ip} | awk -v tem="10.555.3.199" '{print($1>tem)? "1":"0"}'` -eq "0" ]
then
continue
fi
#如果此IP地址不是本机的网卡地址,则计数器加1
if ! grep -q "$ip" <<< "$local_ifaces"; then
count=$((count+1))
fi
#如果计数器比当前最大值还在,则更新最大值
if [ "$count" -gt "$max_count" ]; then
max_ip="$ip"
max_count="$count"
fi
done
#输出结果
echo "最多TCP连接数的IP地址是 $max_ip, 连接数为 $max_count"