Code: Select all
;s := "2001:558:4000:4b:4a1d:70ff:fe67:cccb" ;works
s := "Interface (DS-US) 192.168.0.7 DOC S/C/CH-S/CG/CH Mac Bonded State SIS Qos CPE MAC address IP Address 2001:568:4030:4b:4a1d:70ff:fe67:cccb 11/4/4-1/4/2 13 20x4 Operational 3.0 " ;fails
If (is_ipv6(s))
MsgBox, is ipv6
Else MsgBox, NOT ipv6
is_ipv6(a) {
StringReplace, a, a, :, :, UseErrorLevel
msgbox %ErrorLevel%
If (!l := InStr(a, ":") == 1)
r = :
Loop, % l + 8 - ErrorLevel
r = %r%0:
StringReplace, a, a, ::, %r%
Return, !!RegExMatch(a, "i)^(\[)?(?:[a-f\d]{1,4}:){7}[a-f\d]{1,4}(?(1)\]\d{1,5}|)$")
}