VBA收集整理IP地址和MAC地址信息

2023-10-14 15:52

本文主要是介绍VBA收集整理IP地址和MAC地址信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  IP地址和MAC地址对于网络管理的重要性,作为网管员最清楚。

  需要处理资产信息时,有的资产编码无法对应到具体的计算机或者网络设备,这时就需要MAC地址来确定和比较。

  做网络跟踪时,一般都需要涉及到具体的使用人,在确定具体的设备时绝大多数情况下都是根据MAC地址来一一对应。

  网络和桌面的安全事件处理也涉及到具体设备,这肯定也是与MAC地址来对应,比如查找具体单位的计算机以及哪些计算机修改了IP地址等。

  所以收集和整理相对完备的IP地址、MAC地址、使用人、使用单位、计算机硬软件信息表就是网管员一项不可或缺的工作。

  还有网络设备的管理就是基于MAC地址的。

  很多人觉得简单,实际着手去实现却是很多人没有去做的。

  具体实施过程:

  ①准备完整的MAC地址表;
   可以从网管汇聚设备去提取,然后通过程序来提取。考虑到有的计算机没有开机,需要多个时间去提取。

  ②准备完整的单位设备信息表;
   可以从安装的一些软件中提取,或者让用户提交。
   用户一般比较懒惰,不愿意提交,可以先准备相对准确或者多一些的信息,让用户确认就好一些。

  ③一一对应形成完整的信息表。
   根据MAC地址一一比较,进行信息填充或者修改。

  下面的代码完成IP地址和MAC地址的对应表。

  声明:

Option Explicit
Public MyNetworkInfo As NetworkInfo
Dim MaxRows As IntegerPublic ws As WorksheetType NetworkInfoIPAddr As StringMacAddr As String
End Type

  通用函数:

Function GetNetworkInfo(ByVal Str As String) As NetworkInfoDim TempNetworkInfo As NetworkInfoTempNetworkInfo.IPAddr = ""TempNetworkInfo.MacAddr = ""Dim regex As ObjectDim matches As ObjectSet regex = CreateObject("VBScript.RegExp")regex.Pattern = "\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}"    'IP地址Set matches = regex.Execute(Str)If matches.Count > 0 ThenTempNetworkInfo.IPAddr = matches(0)End Ifregex.Pattern = "\w{4}-\w{4}-\w{4}"    'MAC地址Set matches = regex.Execute(Str)If matches.Count > 0 ThenTempNetworkInfo.MacAddr = matches(0)End IfGetNetworkInfo = TempNetworkInfo
End FunctionFunction SearchMac(ByVal StrMac As String) As String'检查Mac地址是否已经存在表中Dim cell As RangeSearchMac = ""Set cell = ws.Range("C2:C2023").Find(What:=StrMac, LookIn:=xlValues, LookAt:=xlWhole)If Not cell Is Nothing Then'返回对应的IPws.Range("B" + Trim(Str(cell.Row))).SelectSearchMac = Selection.FormulaEnd If
End Function

  主程序:

Sub Get_IPAndMAC()'读取文件,逐行读取Dim TempNetworkInfo As NetworkInfoDim ICount As IntegerDim StrContent As StringDim StrFile As StringDim BeExist As BooleanDim NewIPAddr As StringDim IRecordAdd As IntegerSet ws = Worksheets("IP_MAC")MaxRows = ws.Cells(ws.Rows.Count, "C").End(xlUp).RowStrFile = "从汇聚交换机读取的数据记录文件"Open StrFile For Input As #1 'Do While Not EOF(1)Line Input #1, StrContentTempNetworkInfo = GetNetworkInfo(StrContent)If TempNetworkInfo.IPAddr <> "" And TempNetworkInfo.MacAddr <> "" Then'判断这个Mac地址是否被记录NewIPAddr = SearchMac(TempNetworkInfo.MacAddr)If NewIPAddr = "" Then'添加一条新记录MaxRows = MaxRows + 1ws.Range("B" & Trim(Str(MaxRows))).SelectSelection.FormulaR1C1 = TempNetworkInfo.IPAddrws.Range("C" & Trim(Str(MaxRows))).SelectSelection.FormulaR1C1 = TempNetworkInfo.MacAddrElse'标记IP地址改变ws.Range("H" & Trim(Str(MaxRows))).SelectSelection.FormulaR1C1 = TempNetworkInfo.IPAddrEnd IfDebug.Print TempNetworkInfo.IPAddr + "||||" + TempNetworkInfo.MacAddrEnd IfLoopClose #1MsgBox "完成!"
End Sub

  在信息收集完成后,可以通过写一个应用程序来完成后面的管理工作。

这篇关于VBA收集整理IP地址和MAC地址信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/211540

相关文章

如何在Mac上安装并配置JDK环境变量详细步骤

《如何在Mac上安装并配置JDK环境变量详细步骤》:本文主要介绍如何在Mac上安装并配置JDK环境变量详细步骤,包括下载JDK、安装JDK、配置环境变量、验证JDK配置以及可选地设置PowerSh... 目录步骤 1:下载JDK步骤 2:安装JDK步骤 3:配置环境变量1. 编辑~/.zshrc(对于zsh

Python中使用正则表达式精准匹配IP地址的案例

《Python中使用正则表达式精准匹配IP地址的案例》Python的正则表达式(re模块)是完成这个任务的利器,但你知道怎么写才能准确匹配各种合法的IP地址吗,今天我们就来详细探讨这个问题,感兴趣的朋... 目录为什么需要IP正则表达式?IP地址的基本结构基础正则表达式写法精确匹配0-255的数字验证IP地

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Linux系统中配置静态IP地址的详细步骤

《Linux系统中配置静态IP地址的详细步骤》本文详细介绍了在Linux系统中配置静态IP地址的五个步骤,包括打开终端、编辑网络配置文件、配置IP地址、保存并重启网络服务,这对于系统管理员和新手都极具... 目录步骤一:打开终端步骤二:编辑网络配置文件步骤三:配置静态IP地址步骤四:保存并关闭文件步骤五:重

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Python如何获取域名的SSL证书信息和到期时间

《Python如何获取域名的SSL证书信息和到期时间》在当今互联网时代,SSL证书的重要性不言而喻,它不仅为用户提供了安全的连接,还能提高网站的搜索引擎排名,那我们怎么才能通过Python获取域名的S... 目录了解SSL证书的基本概念使用python库来抓取SSL证书信息安装必要的库编写获取SSL证书信息

Linux配置IP地址的三种实现方式

《Linux配置IP地址的三种实现方式》:本文主要介绍Linux配置IP地址的三种实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录环境RedHat9第一种安装 直接配置网卡文件第二种方式 nmcli(Networkmanager command-line

Linux虚拟机不显示IP地址的解决方法(亲测有效)

《Linux虚拟机不显示IP地址的解决方法(亲测有效)》本文主要介绍了通过VMware新装的Linux系统没有IP地址的解决方法,主要步骤包括:关闭虚拟机、打开VM虚拟网络编辑器、还原VMnet8或修... 目录前言步骤0.问题情况1.关闭虚拟机2.China编程打开VM虚拟网络编辑器3.1 方法一:点击还原VM

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

如何关闭 Mac 触发角功能或设置修饰键? mac电脑防止误触设置技巧

《如何关闭Mac触发角功能或设置修饰键?mac电脑防止误触设置技巧》从Windows换到iOS大半年来,触发角是我觉得值得吹爆的MacBook效率神器,成为一大说服理由,下面我们就来看看mac电... MAC 的「触发角」功能虽然提高了效率,但过于灵敏也让不少用户感到头疼。特别是在关键时刻,一不小心就可能触