#!/bin/bash
# Æ÷Æ®´ç ¿¬°á¼ö ±¸ÇÏ´Â ½©½ºÅ©¸³Æ®
# TIME_WAITµµ ¿¬°á·Î °è»ê KeepAlive Off ^^
# DATE : 20040223
# MAIL : bando(at)bando.org
# MSN : bando(at)bando.org
# IP_ADDR¿¡ ÇöÀç ¼¹öÀÇ ¾ÆÀÌÇǸ¦ ÀúÀåÇÑ´Ù.
# . /etc/sysconfig/network-scripts/ifcfg-eth0 ÀÌ·¸°Ô includeÇؼ IPADDR·Î ½áµµ µÈ´Ù.
IP_ADDR=$(awk -F'[=]' '/IPADDR/ {print $2}' /etc/sysconfig/network-scripts/ifcfg-eth0)
# PORT¿¡ ÇöÀç ¿¸° Æ÷Æ®µéÀ» Á¤·ÄÇØ ÀúÀåÇÑ´Ù.
PORT=$(netstat -ln|awk '/^tcp/{print $4}'|awk -F: '{print $2}'|sort -n -u)
# PORT_LINE¿¡ À§¿¡ ÀúÀåÇÑ PORTµéÀÇ ÃÑ ¶óÀμö¸¦ ÀúÀåÇÑ´Ù.
PORT_LINE=$(wc -l<< EOF
${PORT}
EOF)
# PORT_LINE¿¡ ÀúÀåµÈ ÀμöÁß ÇѹøÀÌ»ó ¹Ýº¹ µÇ´Â ½ºÆäÀ̽º¸¦ ¸ðµÎ Áö¿î´Ù.
PORT_LINE=$(sed 's/ \{1,\}//' << EOF
${PORT_LINE}
EOF)
printf "OPEN PORT : "
for ((KILL=1; KILL <=${PORT_LINE} ; KILL++))
do
# PORT_ONE¿¡ PORT¿¡ ÀúÀåµÈ °ªÁß ¶óÀÎÀÌ KILLÀÎ ¼ö¸¦ ÀúÀåÇÑ´Ù.
PORT_ONE=$(sed -n ${KILL}p << EOF
${PORT}
EOF
)
printf "%d " $PORT_ONE
done
echo " : TOTAL = $PORT_LINE"
printf "PORT\tCONNECT COUNT\n"
#Àüü ¹è¿ÀÇ °³¼ö´Â ÀÌ°É·Î ${#PORT[@]} ¾Ë¼ö ÀÖÁö¸¸ ¿©±â¼± ´º¶óÀÎÀ¸·Î ±¸ºÐµÇ±â¿¡ ¹è¿·Î ¸ø¾µ²¬¿ä! ¾Æ´Ï¸é °¥ÃÄÁÖ¼¼¿ä!
for ((KILL=1; KILL <=${PORT_LINE} ; KILL++))
do
PORT_ONE=$(sed -n ${KILL}p << EOF
${PORT}
EOF
)
# NOW_NUM¿¡ ÇöÀç PORT_ONE¿¡ Á¢¼ÓÇÑ ¿¬°á¼ö¸¦ ÀúÀåÇÑ´Ù. ¹Ýº¹µÇ´Â ¾ÆÀÌÇÇ´Â Çϳª·Î ó¸®ÇÏ°í ±×¶óÀμö¸¦ ±¸ÇÏ°í ÇϳªÀÌ»ó ¹Ýº¹µÇ´Â ½ºÆäÀ̽º´Â ¸ðµÎ ¾ø¾Ø´Ù.
NOW_NUM=$(netstat -an|awk "/${IP_ADDR}:${PORT_ONE}/ {print \$5}"|awk -F: '{print $1}'|sort -u|wc -l|sed 's/ \{1,\}//')
printf "%d\t%d\n" $PORT_ONE $NOW_NUM
done
exit 0;
|