本文主要是介绍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地址信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!