VB.NET获取局域网IP和MAC地址

前端之家收集整理的这篇文章主要介绍了VB.NET获取局域网IP和MAC地址前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

方法很简单,而且适用于windows xp/2003/vista/7/2008。

运行效果如下:

众所周知,在windows下的命令行程序arp能给我们返回ARP表,那么一切问题就迎刃而解了。在调用arp前,我们只需要做的就是ping 局域网内的ip,最后通过调用arp指令即可获取全部的ip和mac信息了

1首先简历一个bat批处理文件,当然,你可以在调用前动态创建

在C:\创建一个a.bat,其内容如下:

del C:\a.txt
arp -a > c:\a.txt

2现在我们来运行一下a.bat,看到的结果其实并不是完全如我们所愿(如下),所以我们需要使用正则表达式来捕获所需要的数据。


接口: 192.168.1.4 --- 0xd
Internet 地址 物理地址 类型
192.168.1.1 48-5b-39-db-d5-c8 动态
192.168.1.8 20-7c-8f-2f-be-18 动态
192.168.1.255 ff-ff-ff-ff-ff-ff 静态
224.0.0.22 01-00-5e-00-00-16 静态
224.0.0.100 01-00-5e-00-00-64 静态
224.0.0.252 01-00-5e-00-00-fc 静态
239.255.255.250 01-00-5e-7f-ff-fa 静态
255.255.255.255 ff-ff-ff-ff-ff-ff 静态

3创建Windows应用程序,并在窗口上创建一个Progress Button ListView控件,双击Button输入代码如下:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.Click
For i = 1 To 10
My.Computer.Network.Ping("192.168.1." & i,5)
Me.ProgressBar1.Value = i / 10 * 100
Application.DoEvents()
Next
Shell("C:\a.bat",AppWinStyle.Hide,True,1000)
Dim regex As New System.Text.RegularExpressions.Regex("(\d{1,3}.\d{1,3}) +(\w\w-\w\w-\w\w-\w\w-\w\w-\w\w)")
Dim mach As System.Text.RegularExpressions.MatchCollection
While True
If My.Computer.FileSystem.FileExists("C:\a.txt") Then
Exit While
End If
End While
Dim tmp As String = My.Computer.FileSystem.ReadAllText("C:\a.txt")
mach = regex.Matches(tmp)
Me.ListView1.Items.Clear()
Dim lsv As ListViewItem
For Each x As System.Text.RegularExpressions.Match In mach
Dim z As System.Text.RegularExpressions.Group
z = x.Groups(1)
lsv = New ListViewItem()
lsv.Text = z.Value
z = x.Groups(2)
lsv.SubItems.Add(z.Value)
Me.ListView1.Items.Add(lsv)
Next
End Sub

End Class

原文链接:https://www.f2er.com/vb/260343.html

猜你在找的VB相关文章