Rob van der Woude's Scripting Pages

Retrieve Geographical Information

GeoIP COM (GeoIP database & COM wrapper & System Scripting Runtime)
VBScript Code:
Function GeoIP( myHost )
    ' This function returns an array with the IP address, host name, city name,
    ' country name and country code for a specified IP address or host name.
    '
    ' Argument:
    ' [string] IP address or host name
    '
    ' Returns:
    ' [array of string] host name, IP address, city, country, country code
    '
    ' Required software:
    ' MaxMind's GeoIP* database:   http://www.maxmind.com/app/installation?city=1
    ' MaxMind's GeoIP COM wrapper: https://github.com/maxmind/geoip-api-mscom
    ' System Scripting Runtime:    http://www.netal.com/ssr.htm
    '
    ' Written by Rob van der Woude
    ' http://www.robvanderwoude.com

    Dim objGeoIP, objDNS, objRE, strDNS, strHost, strIP

    Set objDNS   = CreateObject( "SScripting.IPNetwork" )
    Set objGeoIP = CreateObject( "GeoIPCOMEx.GeoIPEx" )
    Set objRE    = New RegExp

    ' Resolve the specified host name or IP address
    strDNS = objDNS.DNSLookup( myHost )

    ' Check if the argument is a host name or an IP address
    objRE.Pattern = "ˆ[1-9][0-9]{0,2}(\.[0-9]{1,2}){3}$"
    If objRE.Test( myHost ) Then
        strIP   = myHost
        strHost = strDNS
    Else
        strIP   = strDNS
        strHost = myHost
    End If

    With objGeoIP
        ' Modify the path if you installed the GeoIP* database elsewhere
        .set_db_path "C:\Program Files\GeoIP\"
        .find_by_addr strIP
        GeoIP = Array( strHost, strIP, .city, .country_name, .country_code )
    End With

    Set objDNS   = Nothing
    Set objGeoIP = Nothing
    Set objRE    = Nothing
End Function
 
Requirements:
Windows version: any
Network: any
Client software: MaxMind's GeoIP* database and GeoIP COM wrapper, and Franz Krainer's System Scripting Runtime.
Script Engine: any
Summarized: Works in any Windows version.
Requires MaxMind's GeoIP* database and GeoIP COM wrapper, and Franz Krainer's System Scripting Runtime.
 
[Back to the top of this page]
 
Sample Script
VBScript Code:
Option Explicit

WScript.Echo Join( GeoIP( "www.amazon.com" ), ", " )
WScript.Echo Join( GeoIP( "208.67.219.101" ), ", " )
 
Sample output:
www.amazon.com, 207.171.166.252, Seattle, United States, US
www.opendns.com, 208.67.219.101, San Francisco, United States, US
 
[Back to the top of this page]

page last modified: 2016-09-19; loaded in 0.0057 seconds