shell编程题(二十八)

本小妞迷上赌 提交于 2020-04-07 14:42:04

题目:

  查找请求数前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

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!