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编程题(二十八)的主要内容,如果未能解决你的问题,请参考以下文章

每日算法&面试题,大厂特训二十八天——第二十七天(函数)

每日算法&面试题,大厂特训二十八天——第二十三天(树)

每日算法&面试题,大厂特训二十八天——第九天(位运算)

每日算法&面试题,大厂特训二十八天——第十六天(链表)

每日算法&面试题,大厂特训二十八天——第十九天(树)

每日算法&面试题,大厂特训二十八天——第十七天(链表)