Monday, February 06, 2012
   
Text Size

VB - Get IP Address

IP_Address = GetIP()

Function GetIP()
   Dim ws : Set ws = CreateObject("WScript.Shell")
 Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
 Dim TmpFile : TmpFile = fso.GetSpecialFolder(2) & "/ip.txt"
   Dim ThisLine, IP
   If ws.Environment("SYSTEM")("OS") = "" Then
  ws.run "winipcfg /batch " & TmpFile, 0, True
 Else
  ws.run "%comspec% /c ipconfig > " & TmpFile, 0, True
 End If
 With fso.GetFile(TmpFile).OpenAsTextStream
 Do While NOT .AtEndOfStream
  ThisLine = .ReadLine
  If InStr(ThisLine, "Address") 0 Then IP = Mid(ThisLine, InStr(ThisLine, ":") + 2)
 Loop
 .Close
 End With
 'WinXP (NT? 2K?) leaves a carriage return at the end of line
 If IP "" Then
  If Asc(Right(IP, 1)) = 13 Then IP = Left(IP, Len(IP) - 1)
 End If
 GetIP = IP
 fso.GetFile(TmpFile).Delete 
 Set fso = Nothing
 Set ws = Nothing
End Function