Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Simple tool for getting geolocation information on given IP address from various geolocation databases.

License

NotificationsYou must be signed in to change notification settings

tomas-net/ip2geotools

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Description

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.

Installation

To install theip2geotools module, type:

$ pip install ip2geotools

Basic usage

>>>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'

Command-line usage

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 instead
  • IP_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}

Models

This module contains models for the data returned by geolocation databasesand these models are also used for comparison of given and provided data.

ip2geotools.models.IpLocation

Model for storing location of given IP address.

Attributes:

  • ip_address: IP address
  • city: city where IP address is located
  • region: region where IP address is located
  • country: country where IP address is located (two letters country code)
  • latitude: latitude where IP address is located
  • longitude: longitude where IP address is located

Methods:

  • to_json: returns model data in JSON format
  • to_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

Exceptions

This module provides special exceptions used when accessing data fromthird-party geolocation databases.

  • ip2geotools.errors.LocationError: a generic location error
  • ip2geotools.errors.IpAddressNotFoundError: the IP address was not found
  • ip2geotools.errors.PermissionRequiredError: problem with authentication or authorization of the request; check your permission for accessing the service
  • ip2geotools.errors.InvalidRequestError: invalid request
  • ip2geotools.errors.InvalidResponseError: invalid response
  • ip2geotools.errors.ServiceError: response from geolocation database is invalid (not accessible, etc.)
  • ip2geotools.errors.LimitExceededError: limits of geolocation database have been reached

Databases

Following classes access many different noncommercial and commercial geolocation databases using defined interface.

ip2geotools.databases.interfaces

  • IGeoIpDatabase: interface for unified access to the data provided by various geolocation databases

ip2geotools.databases.noncommercial

ip2geotools.databases.commercial

Requirements

This code requires Python 3.3+ and several other packages listed inrequirements.txt.

Support

Please report all issues with this code using theGitHub issue tracker

License

ip2geotools is released under the MIT License. See the bundledLICENSE file for details.

Author

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

Stars

Watchers

Forks

Packages

No packages published

Contributors2

  •  
  •  

Languages


[8]ページ先頭

©2009-2025 Movatter.jp