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

14 篇文章 0 订阅
1 篇文章 0 订阅

方法很简单,而且适用于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}.\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

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值