GetPortConn.sh 

Category: Programming,

  1. ¿­¸° Æ÷Æ®´ç ¿¬°á¼ö ±¸ÇÏ´Â ½©½ºÅ©¸³Æ®

¿­¸° Æ÷Æ®´ç ¿¬°á¼ö ±¸ÇÏ´Â ½©½ºÅ©¸³Æ®  

¿ø¹® : http://kltp.kldp.org/stories.php?story=04/02/23/1278181
#!/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;