- Notifications
You must be signed in to change notification settings - Fork10
Simple tool for getting geolocation information on given IP address from various geolocation databases.
License
tomas-net/ip2geotools
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
ip2geotools
is a simple tool for getting geolocation information on given IP address from various geolocation databases. This package provides an API for several geolocation databases.
To install theip2geotools
module, type:
$ pip install ip2geotools
>>>from ip2geotools.databases.noncommercialimport DbIpCity>>> response= DbIpCity.get('147.229.2.90',api_key='free')>>> response.ip_address'147.229.2.90'>>> response.city'Brno (Brno střed)'>>> response.region'South Moravian'>>> response.country'CZ'>>> response.latitude49.1926824>>> response.longitude16.6182105>>> response.to_json()'{"ip_address": "147.229.2.90", "city": "Brno (Brno střed)", "region": "South Moravian", "country": "CZ", "latitude": 49.1926824, "longitude": 16.6182105}'>>> response.to_xml()'<?xml version="1.0" encoding="UTF-8" ?><ip_location><ip_address>147.229.2.90</ip_address><city>Brno (Brno střed)</city><region>South Moravian</region><country>CZ</country><latitude>49.1926824</latitude><longitude>16.6182105</longitude></ip_location>'>>> response.to_csv(',')'147.229.2.90,Brno (Brno střed),South Moravian,CZ,49.1926824,16.6182105'
When installed, you can invokeip2geotools
from the command-line:
ip2geotools [-h] -d {dbipcity,hostip,freegeoip,ipstack,maxmindgeolite2city,ip2location,dbipweb,maxmindgeoip2city,ip2locationweb,neustarweb,geobytescitydetails,skyhookcontextacceleratorip,ipinfo,eurek,ipdata} [--api_key API_KEY] [--db_path DB_PATH] [-u USERNAME] [-p PASSWORD] [-f {json,xml,csv-space,csv-tab,inline}] [-v] IP_ADDRESS
Where:
ip2geotools
: is the script when installed in your environment, in development you could usepython -m ip2geotools
insteadIP_ADDRESS
: IP address to be checked-h
,--help
: show help message and exit-d {dbipcity,hostip,...,ipdata}
: geolocation database to be used (case insesitive)--api_key API_KEY
: API key for given geolocation database (if needed)--db_path DB_PATH
: path to geolocation database file (if needed)-u USERNAME
,--username USERNAME
: username for accessing given geolocation database (if needed)-p PASSWORD
,--password PASSWORD
: password for accessing given geolocation database (if needed)-f {json,xml,csv-space,csv-tab,inline}
,--format {json,xml,csv-space,csv-tab,inline}
: output data format-v
,--version
: show program's version number and exit
Examples:
$ ip2geotools 147.229.2.90 -d dbipcity -f json{"ip_address":"147.229.2.90","city":"Brno (Brno střed)","region":"South Moravian","country":"CZ","latitude": 49.1926824,"longitude": 16.6182105}
This module contains models for the data returned by geolocation databasesand these models are also used for comparison of given and provided data.
Model for storing location of given IP address.
Attributes:
ip_address
: IP addresscity
: city where IP address is locatedregion
: region where IP address is locatedcountry
: country where IP address is located (two letters country code)latitude
: latitude where IP address is locatedlongitude
: longitude where IP address is located
Methods:
to_json
: returns model data in JSON formatto_xml
: returns model data in XML format (root element:ip_location
)to_csv
: returns model data in CSV format separated by given delimiter__str__
: internal string representation of model, every single information on new line
This module provides special exceptions used when accessing data fromthird-party geolocation databases.
ip2geotools.errors.LocationError
: a generic location errorip2geotools.errors.IpAddressNotFoundError
: the IP address was not foundip2geotools.errors.PermissionRequiredError
: problem with authentication or authorization of the request; check your permission for accessing the serviceip2geotools.errors.InvalidRequestError
: invalid requestip2geotools.errors.InvalidResponseError
: invalid responseip2geotools.errors.ServiceError
: response from geolocation database is invalid (not accessible, etc.)ip2geotools.errors.LimitExceededError
: limits of geolocation database have been reached
Following classes access many different noncommercial and commercial geolocation databases using defined interface.
IGeoIpDatabase
: interface for unified access to the data provided by various geolocation databases
DbIpCity
:https://db-ip.com/api/HostIP
:http://hostip.info/Freegeoip
:http://freegeoip.net/Database is deprecated!Ipstack
:https://ipstack.com/MaxMindGeoLite2City
:https://dev.maxmind.com/geoip/geoip2/geolite2/Ip2Location
:https://lite.ip2location.com/database/ip-country-region-city-latitude-longitude
DbIpWeb
:https://db-ip.com/MaxMindGeoIp2City
:https://www.maxmind.com/Ip2LocationWeb
:https://www.ip2location.com/NeustarWeb
:https://www.neustar.biz/resources/tools/ip-geolocation-lookup-tool/GeobytesCityDetails
:http://geobytes.com/get-city-details-api/SkyhookContextAcceleratorIp
:http://www.skyhookwireless.com/IpInfo
:https://ipinfo.io/Eurek
:https://www.eurekapi.com/Ipdata
:https://ipdata.co/
This code requires Python 3.3+ and several other packages listed inrequirements.txt
.
Please report all issues with this code using theGitHub issue tracker
ip2geotools
is released under the MIT License. See the bundledLICENSE file for details.
ip2geotools
was written by Tomas Caha <tomas-net at seznam dot cz> / <tomas.caha1 at vut dot cz> atFEECBUT.
About
Simple tool for getting geolocation information on given IP address from various geolocation databases.
Resources
License
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Packages0
Uh oh!
There was an error while loading.Please reload this page.
Contributors2
Uh oh!
There was an error while loading.Please reload this page.