首页 > 试题广场 >

netstat练习2-查看和3306端口建立的连接

[编程题]netstat练习2-查看和3306端口建立的连接
  • 热度指数:13956 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
假设netstat命令运行的结果我们存储在nowcoder.txt里,格式如下:
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 0.0.0.0:6160            0.0.0.0:*               LISTEN
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN
tcp        0      0 172.16.56.200:41856     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:49822     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:49674     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:42316     172.16.34.143:3306      ESTABLISHED
tcp        0      0 172.16.56.200:44076     172.16.240.74:6379      ESTABLISHED
tcp        0      0 172.16.56.200:49656     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:58248     100.100.142.4:80        TIME_WAIT
tcp        0      0 172.16.56.200:50108     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:41944     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:35548     100.100.32.118:80       TIME_WAIT
tcp        0      0 172.16.56.200:39024     100.100.45.106:443      TIME_WAIT
tcp        0      0 172.16.56.200:41788     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:58260     100.100.142.4:80        TIME_WAIT
tcp        0      0 172.16.56.200:41812     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:41854     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:58252     100.100.142.4:80        TIME_WAIT
tcp        0      0 172.16.56.200:49586     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:41754     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:50466     120.55.222.235:80       TIME_WAIT
tcp        0      0 172.16.56.200:38514     100.100.142.5:80        TIME_WAIT
tcp        0      0 172.16.56.200:49832     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:52162     100.100.30.25:80        ESTABLISHED
tcp        0      0 172.16.56.200:50372     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:50306     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:49600     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:41908     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:60292     100.100.142.1:80        TIME_WAIT
tcp        0      0 172.16.56.200:37650     100.100.54.133:80       TIME_WAIT
tcp        0      0 172.16.56.200:41938     172.16.34.144:3306      ESTABLISHED
tcp        0      0 172.16.56.200:49736     172.16.0.24:3306        ESTABLISHED
tcp        0      0 172.16.56.200:41890     172.16.34.144:3306      ESTABLISHED
udp        0      0 127.0.0.1:323           0.0.0.0:*
udp        0      0 0.0.0.0:45881           0.0.0.0:*
udp        0      0 127.0.0.53:53           0.0.0.0:*
udp        0      0 172.16.56.200:68        0.0.0.0:*
udp6       0      0 ::1:323                 :::*
raw6       0      0 :::58                   :::*                    7
现在需要你查看和本机3306端口建立连接并且状态是established的所有IP,按照连接数降序排序。你的脚本应该输出
10 172.16.0.24
9 172.16.34.144
1 172.16.34.143

头像 灿烂ll人生
发表于 2022-04-07 08:56:55
方法比较笨,按部就班的解决,效率较低下,但通俗易懂!哈哈 grep "3306" nowcoder.txt|grep "ESTABLISHED"|awk '{print 5}'|awk -F ":" '{ a[1]++ }END { for(k in a)print a[k]" "k}'|s 展开全文
头像 还没xiang好
发表于 2023-05-07 22:32:47
1. grep查找,awk分割两次,排序,计数,排序,打印 grep '3306.*ESTABLISHED' nowcoder.txt | awk '{print $5}' | awk -F ':' '{print $1}' | sort | uniq -c | sort -nr | awk '{p 展开全文
头像 pardon110
发表于 2022-07-10 17:00:29
awk '/ESTABLISHED/ && /3306/{map[substr($5,0,length($5)-5)]++} END {for(addr in map) print(map[addr],a 展开全文
头像 真的会谢的芹菜很刻苦
发表于 2024-07-17 14:24:31
#!/bin/bash awk '{print $5}' nowcoder.txt|grep "3306"|awk -F ':' '{print $1}'|sort|uniq -c|sort -nr|awk '{print $1,$2}'
头像 oayekz
发表于 2022-01-13 15:18:57
awk ' { if(5 ~ /3306/){ if(6 == "ESTABLISHED"){ a[$5]++ } } } END{ for(x in a){ print a[x], x } }'| sed 's/:3306//' | sort -nr -k1
头像 牛客220118974号
发表于 2025-11-02 22:03:11
#!/bin/bash cat nowcoder.txt | grep tcp | tr -s ' ' | cut -d ' ' -f 5 | grep 3306 | cut -d ':' -f 1 | sort | uniq -c | tr -s ' ' | sed 's/^ //' | sor 展开全文
头像 已注销
发表于 2023-09-02 21:07:24
#!/bin/bash cat nowcoder.txt| grep "3306.*ESTABLISHED"| awk '{print $5}'| awk -F':' '{print $1}'| sort| uniq -c| sort -nr| awk '{print $1&q 展开全文
头像 裙下之臣0012
发表于 2024-05-22 21:08:22
#!/bin/bash awk -F ' +|:' '/3306.+ESTABLISHED/{list[$6]++}END{for(i in list){print list[i]" "i}}' "./nowcoder.txt" | sort -k1 -n 展开全文
头像 裙下之臣0012
发表于 2024-04-08 14:19:11
#!/bin/bash grep -Eo "\:.+3306.*ESTA" "./nowcoder.txt" | grep -Eo "[0-7]+\..+\..+\.[0-7]+" | awk '{list[$0]++} END{for( 展开全文
头像 嘉木_99
发表于 2024-04-19 15:53:31
#!/bin/bash cat nowcoder.txt | grep "3306" | awk '{if($6=="ESTABLISHED"){print($5)}}' | awk -F ":" '{print($1)}' | sort 展开全文