Advertisement
Guest User

Untitled

a guest
Feb 21st, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.43 KB | None | 0 0
  1. Const ForReading = 1
  2. Const ForAppending = 8
  3. Dim ipLog, objHTTP, strHTML, varStart
  4. Dim varStop, strIP, strCurrIP, objFSO
  5. Dim txtFile, strLine, objShell
  6.  
  7. ' Log for tracking external IP addresses
  8. ipLog = "ExternalIP.txt"
  9.  
  10. ' Get current external IP address from web
  11. Set objHTTP = CreateObject("MSXML2.XMLHTTP")
  12. Call objHTTP.Open("GET", "http://checkip.dyndns.org", False)
  13. objHTTP.Send()
  14. strHTML = objHTTP.ResponseText
  15.  
  16. ' Extarct IP from HTML if HTML was recieved
  17. If strHTML <> "" Then
  18. varStart = InStr(1, strHTML, "Current IP Address:", vbTextCompare) + 19
  19. If varStart Then varStop = InStr(varStart, strHTML, "</body>", vbTextCompare)
  20. If varStart And varStop Then strIP = Mid(strHTML, varStart, varStop - varStart)
  21. Else
  22. strIP = "Unavailable"
  23. End If
  24. ' Remove preceeding or trailing spaces
  25. strCurrIP = Trim(strIP)
  26.  
  27. ' Check for log file and last log entry
  28. Set objFSO = CreateObject("Scripting.FileSystemObject")
  29. If Not (objFSO.FileExists(ipLog)) Then
  30. ' If log file doesn't exist create it
  31. Set txtFile = objFSO.CreateTextFile(ipLog, True)
  32. strIP = ""
  33. Else
  34. ' Get last external IP address entry from log file
  35. Set txtFile = objFSO.OpenTextFile(ipLog, ForReading)
  36. Do Until txtFile.AtEndOfStream
  37. strLine = txtFile.ReadLine
  38. If Len(strLine) > 0 Then
  39. strIP = strLine
  40. End If
  41. Loop
  42.  
  43. End If
  44. txtFile.Close
  45.  
  46. ' Extarct last external IP from log file entry
  47. If strIP <> "" Then
  48. varStart = 1
  49. varStop = InStr(varStart, strIP, ",", vbTextCompare) - 1
  50. If varStop Then strIP = Mid(strIP, varStart, varStop - varStart)
  51. ' Remove preceeding or trailing spaces
  52. Trim(strIP)
  53. Else
  54. strIP = "Unavailable"
  55. End If
  56.  
  57. ' Copy IP to clipboard
  58. Set objShell = WScript.CreateObject("WScript.Shell")
  59. objShell.Run "CMD /C ECHO " & strCurrIP & " | CLIP", 2
  60.  
  61. ' Check if external IP has changed
  62. If strCurrIP = strIP Then
  63. ' If unchanged display IP
  64. MsgBox "External IP: " & strCurrIP & " is unchanged"
  65. Else
  66. ' If changed log to file and display IP
  67. Set txtFile = objFSO.OpenTextFile(ipLog, ForAppending)
  68. txtFile.Write(strCurrIP & vbTab & ", " & Date & vbCrLf)
  69. txtFile.Close
  70. MsgBox "External IP: " & strCurrIP & vbCrLf & "This IP address has been logged"
  71. End If
  72.  
  73. ' Clear variables
  74. Set ipLog = Nothing
  75. Set objHTTP = Nothing
  76. Set strHTML = Nothing
  77. Set varStart = Nothing
  78. Set varStop = Nothing
  79. Set strIP = Nothing
  80. Set strCurrIP = Nothing
  81. Set objFSO = Nothing
  82. Set txtFile = Nothing
  83. Set strLine = Nothing
  84. Set objShell = Nothing
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement