none
判断当前正在使用的网络适配器的IP地址? RRS feed

  • 问题

  • 这段代码是返回安装在计算机中的每个支持 IP 的网络适配器的 IP 地址:

    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set IPConfigSet = objWMIService.ExecQuery _
      ("Select IPAddress from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
    For Each IPConfig in IPConfigSet
      If Not IsNull(IPConfig.IPAddress) Then 
        For i=LBound(IPConfig.IPAddress) to UBound(IPConfig.IPAddress)
          WScript.Echo IPConfig.IPAddress(i)
      Next
      End If
    Next
    
    想改成“显示当前正在使用的网络适配器的IP地址”的话,怎么处理?

    2010年11月28日 18:07

答案

  • 你好

    不太清楚你的錯誤信息的意思..
    可不可以POST你的功能上來看看

    以下的CODE 我在VS2010 上執行是沒有問題的

          Dim localHostName As String = System.Net.Dns.GetHostName()

            Dim hostEntry As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(localHostName)

     

            For Each ipAddr As System.Net.IPAddress In hostEntry.AddressList

                '如果你想找出IPV4 的Address 可以使用 = Sockets.AddressFamily.InterNetwork.ToString

                '如果你想找出IPV6 的Address 可以使用 = Sockets.AddressFamily.InterNetworkV6.ToString

                If ipAddr.AddressFamily.ToString = System.Net.Sockets.AddressFamily.InterNetwork.ToString Then

                    MsgBox(ipAddr.ToString())

                End If

            Next

    Please correct me if my concept is wrong


    Chi
    2010年11月29日 8:41
    版主

全部回复

  • 你好

    或者你可以嘗試以下的CODE

    Dim localHostName = Dns.GetHostName()
            Dim hostEntry = Dns.GetHostEntry(localHostName)

            For Each ipAddr As IPAddress In hostEntry.AddressList


    '如果你想找出IPV4 的Address 可以使用 = Sockets.AddressFamily.InterNetwork.ToString


    '如果你想找出IPV6 的Address 可以使用 = Sockets.AddressFamily.InterNetworkV6.ToString

               If ipAddr.AddressFamily.ToString = Sockets.AddressFamily.InterNetwork.ToString Then
                    MsgBox(ipAddr.ToString())
                End If

            Next

    Please correct me if my concept is wrong


    Chi
    2010年11月28日 22:59
    版主
  • 你好

    或者你可以嘗試以下的CODE

    Dim localHostName = Dns.GetHostName()
            Dim hostEntry = Dns.GetHostEntry(localHostName)

            For Each ipAddr As IPAddress In hostEntry.AddressList


    '如果你想找出IPV4 的Address 可以使用 = Sockets.AddressFamily.InterNetwork.ToString


    '如果你想找出IPV6 的Address 可以使用 = Sockets.AddressFamily.InterNetworkV6.ToString

               If ipAddr.AddressFamily.ToString = Sockets.AddressFamily.InterNetwork.ToString Then
                    MsgBox(ipAddr.ToString())
                End If

            Next

    Please correct me if my concept is wrong


    Chi

    语句为结束,第一行,第19个字符。

    WHY?

    2010年11月29日 1:49
  • 你好

    不太清楚你的錯誤信息的意思..
    可不可以POST你的功能上來看看

    以下的CODE 我在VS2010 上執行是沒有問題的

          Dim localHostName As String = System.Net.Dns.GetHostName()

            Dim hostEntry As System.Net.IPHostEntry = System.Net.Dns.GetHostEntry(localHostName)

     

            For Each ipAddr As System.Net.IPAddress In hostEntry.AddressList

                '如果你想找出IPV4 的Address 可以使用 = Sockets.AddressFamily.InterNetwork.ToString

                '如果你想找出IPV6 的Address 可以使用 = Sockets.AddressFamily.InterNetworkV6.ToString

                If ipAddr.AddressFamily.ToString = System.Net.Sockets.AddressFamily.InterNetwork.ToString Then

                    MsgBox(ipAddr.ToString())

                End If

            Next

    Please correct me if my concept is wrong


    Chi
    2010年11月29日 8:41
    版主
  • 我就直接把你的代码存成了一个.VBS文件,双击执行的。

    系统:XP SP3

    2010年11月29日 12:43