Я не могу заставить StrComp работать правильно, и я не знаю почему. Кто-нибудь может увидеть, что я могу делать здесь не так? (все номера ip были изменены)
Option Explicit
Dim http : Set http = CreateObject( "MSXML2.ServerXmlHttp" )
Dim externalip
http.Open "GET", "http://icanhazip.com", False
http.Send
externalip = http.responseText
wscript.Echo externalip
wscript.Echo StrComp(externalip, "71.215.176.202")
if StrComp(externalip, "71.215.176.202") = 0 Then
wscript.Echo "Connected to Comcast"
else
wscript.echo "Connected to Office"
end if
Set http = Nothing
Это никогда не вернет 0, даже если externalip верен. Странно то, что во внешнем чипе, кажется, есть дополнительный CR/LF. Я пытался использовать функцию обрезки, но это не помогает. Вот пример вывода при подключении к офису:
C:\BATFiles>cscript ip.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
107.62.166.159
-1
Connected to Office
А вот и выход при подключении к моему локальному провайдеру (Comcast)
C:\BATFiles>cscript ip.vbs
Microsoft (R) Windows Script Host Version 5.812
Copyright (C) Microsoft Corporation. All rights reserved.
71.215.176.202
1
Connected to Office
Из выходных данных я знаю, что могу просто проверить, возвращает ли strcomp> 0, но IP-адрес офиса может изменяться в зависимости от того, к какому местоположению я подключаюсь, но IP-адрес в моем локальном компьютере в значительной степени статичен. И я не совсем уверен, как -1 и 1 выбираются при сравнении строк. Это делает сравнение длины?