0

VB经验很少,遇到头疼的问题。我需要获取一个 IP 并反转它。

例如 - 11.22.33.44 将变为 44.33.22.11

我猜要反转整个批次,然后根据 . 分隔符

严格来说,我想做的是颠倒八位字节的顺序 - 192.168.42.23 应该变成 23.42.168.192

谢谢

编辑 - 澄清

4

2 回答 2

2

对于您的示例,字符串反转将起到作用。

Dim txt
txt="This is a beautiful day!"
document.write(StrReverse(txt))

Output:

!yad lufituaeb a si sihT

这仅适用于您提供的示例。如果你需要反转这个:12.34.56.78,上面将返回 87.65.43.21 但你想要 78.56.34.12。

然后结合拆分+循环:

    a=Split("11.22.33.44", ".", 4)
    b= a(0)
    For i = 1 To 3
      b = a(i) & "." & b
    Next
    WScript.Echo  b

更新:或者根本没有循环!

    a=Split("11.22.33.44", ".", 4)
    b= a(3) & "." & a(2) & "." & a(1) & "." & a(0)
    WScript.Echo  b
于 2013-07-26T19:22:05.630 回答
2

您需要将 IP 地址拆分为其八位字节并以相反的顺序重新组合它们:

addr1 = Split("11.22.33.44", ".")
maxindex = UBound(addr1)
ReDim addr2(maxindex)
For i = 0 To maxindex
  addr2(maxindex - i) = addr1(i)
Next

WScript.Echo "Forward: " & Join(addr1, ".")
WScript.Echo "Reverse: " & Join(addr2, ".")

输出:

Forward: 11.22.33.44
Reverse: 44.33.22.11
于 2013-07-26T19:54:08.357 回答