shell编程题(二十八)
Posted 王清河
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了shell编程题(二十八)相关的知识,希望对你有一定的参考价值。
题目:
查找请求数前20个IP(常用于查找攻来源)
答案:
#! /bin/bash echo "The numbers of IP address" echo "the first way:" netstat -anlp | grep 80 | grep tcp | awk \'{print $5}\' | awk -F: \'{print $1}\' | uniq -c | sort -nr | head -n20 echo "the second way:" netstat -ant | awk \'/:80/{split($5,ip,":");++A[ip[1]]} END {for (i in A) print A[i],i}\' | sort -rn | head -n20
运行结果:
解析:
split的效果
netstat -ant | awk \'{print $5}\'
netstat -ant | awk \'/:80/{split($5,ip,":");print ip[1]}\'
综合可知
{split($5,ip,":")
意思是将第五个字符串按照 ":" 进行切割,存放在名称为 ip的数组中。
ip[1]放的是ip, ip[2]放的是端口号 80
以上是关于shell编程题(二十八)的主要内容,如果未能解决你的问题,请参考以下文章