vba - 如何检索这台计算机的IP地址?

标签 vba excel msinet

检索机器 IP 地址(第一个打开的接口(interface))的最不麻烦(模块包含、代码长度等)的方法是什么? 我知道一些使用 MSINET 的解决方案,但我相信我们可以做得更好。 请勿回复

Function HomeIP() as Atring
HomeIP= "127.0.0.1"
End Function

因为这并不那么有趣......或者正确。 该场景是一个带有 document ID feature 的问题。我正在尝试为其建立回复。

最佳答案

这是来自 Technet 的改编示例:

Function GetIPAddress()
    Const strComputer As String = "."   ' Computer name. Dot means local computer
    Dim objWMIService, IPConfigSet, IPConfig, IPAddress, i
    Dim strIPAddress As String

    ' Connect to the WMI service
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

    ' Get all TCP/IP-enabled network adapters
    Set IPConfigSet = objWMIService.ExecQuery _
        ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=TRUE")

    ' Get all IP addresses associated with these adapters
    For Each IPConfig In IPConfigSet
        IPAddress = IPConfig.IPAddress
        If Not IsNull(IPAddress) Then
            strIPAddress = strIPAddress & Join(IPAddress, ", ")
        End If
    Next

    GetIPAddress = strIPAddress
End Function

它要求您在项目引用中具有 Microsoft WMI 脚本库。

关于vba - 如何检索这台计算机的IP地址?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/828496/

相关文章:

excel - VBA Excel 中的排列

windows - 哪些Windows版本预装了MSINET.OCX控件

vba - 如何获得日期的天数

vba - 将单元格值传递到组合框列表中

excel - 有没有办法简化这段代码?该代码在 3 张纸上重复。

excel - VBA 溢出错误在中断模式下消失

excel - 如何在excel VBA中读取目录中的某些文件

excel - 扫描列以查找匹配的文本并将结果粘贴到另一列中