【实时监控主机与某个IP的网络连接情况】

Python脚本

写个脚本监控主机与某几个IP的连接情况,发现存在这种连接的,记录连接起始时间、源IP源、端口、目的IP、目的端口等信息

import os
import time
import subprocess
from typing import List# 目标IP列表
TARGET_IPS = ["192.168.1.1", "192.168.1.2", "192.168.1.3"]# 输出文件名
OUTPUT_FILE = "connection_log.txt"# 监控间隔(秒)
INTERVAL = 5def get_connections(target_ips: List[str]) -> List[str]:connections = []netstat_output = subprocess.check_output("netstat -an", shell=True).decode("utf-8")for line in netstat_output.split("\n"):for ip in target_ips:if ip in line:connections.append(line)return connectionsdef get_process(port: str) -> str:try:process_output = subprocess.check_output(f"lsof -i :{port}", shell=True).decode("utf-8")return process_output.split("\n")[1].split()[0]except subprocess.CalledProcessError:return ""# 清空输出文件
with open(OUTPUT_FILE, "w") as f:pass# 实时监控
while True:with open(OUTPUT_FILE, "a") as f:connections = get_connections(TARGET_IPS)for conn in connections:parts = conn.split()src_ip, src_port = parts[3].rsplit(":", 1)dst_ip, dst_port = parts[4].rsplit(":", 1)process = get_process(src_port)if process:log_entry = f"源IP: {src_ip}, 源端口: {src_port}, 目的IP: {dst_ip}, 目的端口: {dst_port}, 进程: {process}"f.write(log_entry + "\n")print(log_entry)time.sleep(INTERVAL)

这个Python脚本与之前的bash脚本功能相同,会实时监控网络连接,并将源IP、源端口、目的IP、目的端口和使用源端口的进程记录到文件中。请注意,这个脚本在Linux系统上运行,可能需要使用root权限。with open(OUTPUT_FILE, “a”) as f:语句在while True:循环的开始处,这意味着在每次循环开始时,文件都会被打开,并在循环结束时关闭。这样,无论是否检测到新的连接,都会在每次循环结束时保存文件。

Bash脚本

#!/bin/bash# 目标IP列表,使用空格分隔
TARGET_IPS=("192.168.1.1" "192.168.1.2" "192.168.1.3")# 输出文件名
OUTPUT_FILE="connection_log.txt"# 监控间隔(秒)
INTERVAL=5# 清空输出文件
> $OUTPUT_FILE# 无限循环以实现实时监控
while true
do# 打开文件并追加日志exec 3>>$OUTPUT_FILE# 循环检查每个IPfor ip in "${TARGET_IPS[@]}"do# 使用netstat找到与目标IP的连接connections=$(netstat -an | grep $ip)# 如果有连接,打印详细信息if [ ! -z "$connections" ]; then# 找到使用源端口的进程for conn in $connectionsdo# 分割字符串以获取源IP、源端口和目的端口src_ip=$(echo $conn | awk '{print $4}' | cut -d ':' -f 1)src_port=$(echo $conn | awk '{print $4}' | cut -d ':' -f 2)dst_port=$(echo $conn | awk '{print $5}' | cut -d ':' -f 2)# 使用lsof找到使用该端口的进程process=$(lsof -i :$src_port | awk '{print $1}')# 输出到文件if [ ! -z "$process" ]; thenlog_entry="源IP: $src_ip, 源端口: $src_port, 目的IP: $ip, 目的端口: $dst_port, 进程: $process"echo $log_entry >&3echo $log_entryfidonefidone# 关闭文件exec 3>&-# 等待一段时间再检查sleep $INTERVAL
done

这个bash脚本会在每次检测到新的连接时,立即将连接信息写入到文件中。这是通过使用文件描述符3来打开文件并追加新的日志条目实现的。在每次循环开始时,文件会被打开,并在循环结束时关闭。这样,无论是否检测到新的连接,都会在每次循环结束时保存文件。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/796922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基因组de novo组装

分以下几个部分: CLR组装 HIFI组装 ONT组装 二、三代数据矫正 组装结果评估 一、CLR组装 下机数据: 主要用那个bam文件 软件:wtdbg2 第一步:bam转fasta文件 参考:https://www.jianshu.com/p/03c7eb11102d # 进行基…

基于单片机放大电路程控放大特性参数设计

**单片机设计介绍,基于单片机放大电路程控放大特性参数设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机放大电路程控放大特性参数设计是一个结合了单片机编程和放大电路技术的综合性项目。以下是对该设计项目的概…

第⑪讲:Ceph集群OSD扩容方案及实现横向和纵向扩容

文章目录 1.Ceph集群OSD扩容方案2.实现OSD的横向扩容4.实现OSD的纵向扩容 1.Ceph集群OSD扩容方案 Ceph集群OSD的扩容支持两种方式: 横向扩容 通过增加OSD节点来达到扩容的目的。使用横向扩容要完成以下几个步骤: 在新的机器中进行初始化操作、配置Yum源…

AJAX —— 学习(三)(完结)

目录 一、jQuery 中的 AJAX (一)get 方法 1.语法介绍 2.结果实现 (二)post 方法 1.语法介绍 2.结果实现 (三)通用型的 AJAX 方法 1.语法介绍 2.结果实现 二、AJAX 工具库 axios &#xff08…

1.手写JavaScript快速排序

一、核心思想: 定位中间值和左右数组,将小于等于中间值的置于左数组,否则放在右数组,递归执行上述操作,出口为数组的长度为1或者空,返回数组本身。 二、代码实现: let arr [2, 3, 5, 7, 9, …

idea开发 java web 高校学籍管理系统bootstrap框架web结构java编程计算机网页

一、源码特点 java 高校学籍管理系统是一套完善的完整信息系统,结合java web开发和bootstrap UI框架完成本系统 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 前段主要技术 css jq…

leetcode热题100.数据流的中位数

作者:晓宜 🌈🌈🌈 个人简介:互联网大厂Java准入职,阿里云专家博主,csdn后端优质创作者,算法爱好者 ❤️❤️❤️ 你的关注是我前进的动力😊 Problem: 295. 数据流的中位数…

人工智能、深度伪造和数字身份:企业网络安全的新前沿

深度伪造(Deepfakes)的出现打响了网络安全军备竞赛的发令枪。对其影响的偏执已经波及到一系列领域,包括政治错误信息、假新闻和社交媒体操纵。 深度伪造将加剧公共领域对信任和沟通的本已严峻的压力。这将理所当然地引起监管机构和政策制定者…

Ubuntu22.04安装Anaconda

一、下载安装包 下载地址:https://www.anaconda.com/download#Downloads 参考:Ubuntu下安装Anaconda的步骤(带图) - 知乎 下载Linux 64-Bit (x86) installer 二、安装 在当前路径下,执行命令: bash Ana…

每日面经:计算机网络part1

1. 计算机网络的组成部分有哪些? a. 硬件设备:计算机网络由各种硬件设备组成,包括计算机、服务器、路由器、交换机、网卡等。这些设备通过物理连接(如网线、光纤)相互连接。 b. 协议:计算机网络中的通信需…

硬件项目开发过程详细介绍

对于很多未毕业的学生以及刚参加工作的工程师,经常弄不清楚硬件项目的开发过程?本文将通过详细的步骤来对硬件项目开发过程进行详细的介绍。 硬件项目开发是一个复杂而精细的过程,需要经过多个阶段来完成。在这个过程中,团队成员…

【智能排班系统】基于SpringSecurity实现登录验证、权限验证

文章目录 SpringSecurity介绍sss-security实现依赖工具类Jwt工具JSON响应工具加密工具类 用户上下文用户信息实体类用户上下文 自定义重写自定义无权限的报错自定义密码加密自定义用户类 过滤器登录过滤器权限过滤器 Service登录Service 配置类说明登录验证权限验证IP流量限制 …

【.Net】Polly

文章目录 概述服务熔断、服务降级、服务限流、流量削峰、错峰、服务雪崩Polly的基本使用超时策略悲观策略乐观策略 重试策略请求异常响应异常 降级策略熔断策略与策略包裹(多种策略组合) 参考 概述 Polly是一个被.NET基金会支持认可的框架,同…

hadoop笔记

供个人学习使用 1.大数据的特点 大、多、值、快、信,即5V: Volume(大量):大数据的采集、计算、存储量都非常庞大,待处理数据都是TB、PB、乃至EB级别的Variety(多样性)&#xff1…

在线监测系统在水厂水质管理工程中的应用与研究

【摘要】:随着水厂水质管理技术和管理水平的提升,达到了在线监测系统通过监测数据的反馈,及时发现问题,快速处理事故,优化了水资源的利用率,提高了供水系统的稳定性和安全性,从而有效地提高供水…

科锐国际(计算机类),快手,CVTE,得物,蓝月亮,蓝禾,奇安信,顺丰,康冠科技,金证科技24春招内推

科锐国际,快手,CVTE,得物,蓝月亮,蓝禾,奇安信,顺丰,康冠科技,金证科技24春招内推 ①得物 【岗位】技术,设计,供应链,风控,…

FX110网:菲律宾 eToro 发起人面临最高 21 年监禁的风险

任何在菲律宾推广 eToro 的“推销员、经纪人、经销商或代理商”将面临 500 万比索(约 88,500 美元)的罚款或最高 21 年的监禁,或两者并罚。据当地监管机构称,这是因为“无权在菲律宾向公众出售或发行证券”。 菲律宾证券交易委员会…

Springboot相关知识-图片描述(学习笔记)

学习java过程中的一些笔记,觉得比较重要就顺手记录下来了~ 目录 一、前后端请求1.前后端交互2.简单传参3.数组集合传参4.日期参数5.Json参数6.路径参数7.响应数据8.解析xml文件9.统一返回类10.三层架构11.分层解耦12.Bean的声明13.组件扫描14.自动注入 一、前后端请…

时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测

时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测 目录 时序预测 | Matlab实现CPO-BiLSTM【24年新算法】冠豪猪优化双向长短期记忆神经网络时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab实现CPO-BiLST…

由两个线路驱动器、两个线路接收器和双电荷泵电路组成的芯片D3232,主要用于工控主板、新能源充电桩等众多涉及RS232通讯的产品中

一、应用领域 D3232芯片主要用于工控主板、工业控制器、程序烧录下载器、仿真器、新能源充电桩等众多涉及RS232通讯的产品。 二、基本特性 D3232芯片由两个线路驱动器、两个线路接收器和双电荷泵电路组成,具有HBM>15kV、CDM>2kV的ESD保护能力,并且…