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

相关文章

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

webapp地址

F:\LSP\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

mac安装brew 与 HomeBrew

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh >> brew_install BREW_REPO="

Jenkins 插件 地址证书报错问题解决思路

问题提示摘要: SunCertPathBuilderException: unable to find valid certification path to requested target...... 网上很多的解决方式是更新站点的地址,我这里修改了一个日本的地址(清华镜像也好),其实发现是解决不了上述的报错问题的,其实,最终拉去插件的时候,会提示证书的问题,几经周折找到了其中一遍博文

mac jdk 1.7 dmg 官方版

百度云下载 https://pan.baidu.com/s/1SQiidrPFF5aZr4xlx0ekoQ https://pan.baidu.com/s/1SQiidrPFF5aZr4xlx0ekoQ   补充说明: 实际上oracle对于历史版本的jdk都有归档可以在官方网站上下载,只是需要注册个号就可以了。 地址如下: https://www.oracle.com/cn/java

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

编程应该用 Mac 还是 PC ?

『有人的地方,就有江湖』—徐克。笑傲江湖。     序     一个竞争的市场,就会有对立的产生,这世界存在著很多不同的领域,领域好比是个江湖的缩影,因此就有许多门派的纷争,例如说浏览器领域有著最大宗的IE派,门派成长速度飞快,武功版号跳的跟台湾物价指数一样快的Chrome门,不断被模仿,一直被超越的Opera派;韧性极强,一直对抗几大势力的Firefox派等等,程序语言也有自己的领域

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv