SHELL脚本编程----netstat练习3-输出每个IP的连接数

news/2024/10/18 10:27:29/

描述

假设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

现在需要你输出每个IP的连接数,按照连接数降序排序。你的脚本应该输出

172.16.0.24 10

172.16.34.144 9

100.100.142.4 3

0.0.0.0 3

172.16.34.143 1

172.16.240.74 1

120.55.222.235 1

100.100.54.133 1

100.100.45.106 1

100.100.32.118 1

100.100.30.25 1

100.100.142.5 1

100.100.142.1 1

具体代码实现:

bash">#!/bin/bashcat nowcoder.txt | grep "tcp" | awk '{print($5)}' | awk -F ":" '{print($1)}' | sort -n | uniq -c | sort -rn | awk '{print($2 " " $1)}'

解题思路:

1.先使用grep过滤出包含tcp的记录

2.拿到记录后输出第五个域的值,也就是IP和端口号

3.题目只要IP不要端口号,所以用awk -F 以":"为分隔符,取出第一个域的值

4.将取出的IP进行去重排序(逆序)

5.按题目要求格式输出


http://www.ppmy.cn/news/1434243.html

相关文章

偏差数据比对

import openpyxl # # # 加载 excel 文件 fn D:/pythonProject/偏差计算问题.xlsx wb openpyxl.load_workbook(fn) wb openpyxl.load_workbook(D:/pythonProject/偏差计算问题.xlsx) # # # 得到sheet对象 sheet wb[Sheet1] # sheet[B2] 修改一下 ws wb.get_sheet_by_nam…

pyqt 动态更换表头和数据

目录 pyqt 动态更换表头和数据代码 效果图: pyqt 动态更换表头和数据代码 from PyQt5.QtGui import QColor, QBrush from PyQt5.QtWidgets import QApplication, QTableWidget, QVBoxLayout, QWidget, QPushButton, QTableWidgetItemclass Example(QWidget):def _…

结果展示的角度

在论文的结果展示部分,需要多维度地展示本文的工作(丰富内容)。一般表现维度有以下角度: 1.模型展示 (1)找到最优解算例个数(未找到最优解的算例个数) (2)…

go语言触发浏览器打开网址程序实例

在Go语言中,触发浏览器打开特定的网址通常涉及调用操作系统的命令行工具来启动默认的浏览器并导航到指定的URL。 示例: package main import ( "fmt" "os/exec" "runtime" ) func main() { url : "https:/…

基于springboot实现中药实验管理系统设计项目【项目源码+论文说明】

基于springboot实现中药实验管理系统设计演示 摘要 随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了中药实验管理系统的开发全过程。通过分析中药实验管理系统管理的不足,创建了一个计算机管理中药实验管…

component-Echarts柱状图堆叠图与折线图的实现

1.效果 2.​​​​​代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>ECharts 实例</title><!-- 引入 echarts.js --><script src"https://cdn.staticfile.org/echarts/4.3.0/echarts.min.js&…

线上旧衣回收小程序,隐藏的蓝海回收市场

随着生活水平的提高&#xff0c;人们对衣服的要求逐渐增加&#xff0c;衣服的更新也越来越快&#xff0c;成为了一个消耗品&#xff0c;这时旧衣服便成为了一个新的商业发展模式。旧衣回收门槛低、投入少&#xff0c;适合普通人进行创业&#xff0c;因此&#xff0c;旧衣回收行…

十八、QGIS的作用和下载

最近在学习webGIS的时候,发现路径文件是geoJSON文件,那么如果是你没有这个文件怎么办,从哪里能够获取呢,我最近就查询了文档,发现大多数都是shp转geoJSON,或者是osm转geoJSON,那如何去转换呢,就有两个方法,如果只关注QGiS,第一个方法可以忽略。 一、 安装ogr2ogr 具…