【问题标题】:Obtain IP address and change 3rd Octet获取 IP 地址并更改第 3 个八位字节
【发布时间】:2016-09-24 14:05:38
【问题描述】:

我正在使用以下获取IP地址(称为LAN2的NIC)

然后我需要更改第 3 个八位字节。下面正在更改最后一个(更改为 .15),但我无法将其修改为第三个 - 我该怎么做?

 Dim HostIPAddress : HostIPAddress = ""
Dim objWMIService : Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim colAdapters : Set colAdapters = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Dim objAdapter
name = "LAN2"

Set wmi = GetObject("winmgmts://./root/cimv2")

deviceQry = "SELECT * FROM Win32_NetworkAdapter " & _
            "WHERE NetConnectionId = '" & name & "'"
For Each adapter In wmi.ExecQuery(deviceQry)
  addressQry = "SELECT * FROM Win32_NetworkAdapterConfiguration " & _
               "WHERE Index = " & adapter.DeviceId
  For Each config In wmi.ExecQuery(addressQry)
    If Not IsNull(config.IPAddress) Then
      HostIPAddress = Trim(config.IPAddress(0))
      Exit For
    End If
  Next
Next

strIP = HostIPAddress

wscript.echo HostIPAddress

i = InStrRev(strIP, ".")

strIP = Left(strIP, i) & "15"

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    在“.”上使用Split()要获取一个数组,更改其第三个元素,使用Join() 进行字符串化:

    >> sIP = "1.2.3.4"
    >> aIP = Split(sIP, ".")
    >> WScript.Echo Join(aIP, "-")
    >> aIP(2) = 254
    >> WScript.Echo Join(aIP, ".")
    >>
    1-2-3-4
    1.2.254.4
    >>
    

    (参见this

    【讨论】:

      猜你喜欢
      • 2014-05-13
      • 2020-10-17
      • 1970-01-01
      • 2020-08-04
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多