Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Const ForReading = 1
- Const ForAppending = 8
- Dim ipLog, objHTTP, strHTML, varStart
- Dim varStop, strIP, strCurrIP, objFSO
- Dim txtFile, strLine, objShell
- ' Log for tracking external IP addresses
- ipLog = "ExternalIP.txt"
- ' Get current external IP address from web
- Set objHTTP = CreateObject("MSXML2.XMLHTTP")
- Call objHTTP.Open("GET", "http://checkip.dyndns.org", False)
- objHTTP.Send()
- strHTML = objHTTP.ResponseText
- ' Extarct IP from HTML if HTML was recieved
- If strHTML <> "" Then
- varStart = InStr(1, strHTML, "Current IP Address:", vbTextCompare) + 19
- If varStart Then varStop = InStr(varStart, strHTML, "</body>", vbTextCompare)
- If varStart And varStop Then strIP = Mid(strHTML, varStart, varStop - varStart)
- Else
- strIP = "Unavailable"
- End If
- ' Remove preceeding or trailing spaces
- strCurrIP = Trim(strIP)
- ' Check for log file and last log entry
- Set objFSO = CreateObject("Scripting.FileSystemObject")
- If Not (objFSO.FileExists(ipLog)) Then
- ' If log file doesn't exist create it
- Set txtFile = objFSO.CreateTextFile(ipLog, True)
- strIP = ""
- Else
- ' Get last external IP address entry from log file
- Set txtFile = objFSO.OpenTextFile(ipLog, ForReading)
- Do Until txtFile.AtEndOfStream
- strLine = txtFile.ReadLine
- If Len(strLine) > 0 Then
- strIP = strLine
- End If
- Loop
- End If
- txtFile.Close
- ' Extarct last external IP from log file entry
- If strIP <> "" Then
- varStart = 1
- varStop = InStr(varStart, strIP, ",", vbTextCompare) - 1
- If varStop Then strIP = Mid(strIP, varStart, varStop - varStart)
- ' Remove preceeding or trailing spaces
- Trim(strIP)
- Else
- strIP = "Unavailable"
- End If
- ' Copy IP to clipboard
- Set objShell = WScript.CreateObject("WScript.Shell")
- objShell.Run "CMD /C ECHO " & strCurrIP & " | CLIP", 2
- ' Check if external IP has changed
- If strCurrIP = strIP Then
- ' If unchanged display IP
- MsgBox "External IP: " & strCurrIP & " is unchanged"
- Else
- ' If changed log to file and display IP
- Set txtFile = objFSO.OpenTextFile(ipLog, ForAppending)
- txtFile.Write(strCurrIP & vbTab & ", " & Date & vbCrLf)
- txtFile.Close
- MsgBox "External IP: " & strCurrIP & vbCrLf & "This IP address has been logged"
- End If
- ' Clear variables
- Set ipLog = Nothing
- Set objHTTP = Nothing
- Set strHTML = Nothing
- Set varStart = Nothing
- Set varStop = Nothing
- Set strIP = Nothing
- Set strCurrIP = Nothing
- Set objFSO = Nothing
- Set txtFile = Nothing
- Set strLine = Nothing
- Set objShell = Nothing
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement