Ich kann StrComp nicht richtig zum Laufen bringen und bin mir nicht sicher warum. Kann jemand sehen, was ich hier falsch mache? (Alle IP-Nummern wurden geändert)
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
Dies gibt niemals 0 zurück, auch wenn externalip korrekt ist. Das Seltsame ist, dass es im externalip einen zusätzlichen CR / LF zu geben scheint. Ich habe versucht, die Trim-Funktion zu verwenden, aber das scheint nicht zu helfen. Hier ist ein Beispiel für die Ausgabe, während Sie mit dem Büro verbunden sind:
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
Und hier ist die Ausgabe bei Verbindung mit meinem lokalen ISP (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
Ich weiß aus der Ausgabe, dass ich nur überprüfen konnte, ob strcomp & gt; 0, aber die Office-IP kann sich ändern, je nachdem, zu welchem Standort ich eine Verbindung herstelle, aber die IP auf meiner lokalen ist ziemlich statisch. Und ich bin mir nicht ganz sicher, wie -1 und 1 beim String-Vergleich entschieden werden. Macht es einen Längenvergleich?