Skip to main content

Fast, offline IP-to-country lookup. Python bindings over the Rust iptocc crate.

Project description

iptocc

PyPI Python License

Python bindings for the iptocc Rust crate. Offline IPv4 and IPv6 to ISO 3166-1 alpha-2 country code lookup.

Note: Country codes reflect the country assigned by a Regional Internet Registry (RIR) to each IP block, not where the block is being used. RIR data agrees with MaxMind for ~95% of IPv4 addresses and has minimal discrepancies for IPv6 (Zander, 2012).

Important: iptocc 3.0 is a complete Rust rewrite. Versions 2.x and earlier were pure Python on top of pandas. The public API stays mostly compatible (see migration notes below), single-lookup latency dropped from ~78 ms to ~44-141 ns, and a batch API was added.

Features

  • Offline lookup, no API keys, no network calls
  • IPv4 and IPv6 in one call
  • Single string OR batch (any iterable of strings)
  • Lookup data embedded in the wheel; no runtime file I/O
  • iptocc CLI installed with pip install iptocc
  • Data refreshed nightly from the five Regional Internet Registries

Install

Requires Python 3.10 or newer.

pip install iptocc

Usage

from iptocc import country_code

country_code("8.8.8.8")                       # "US"
country_code(["8.8.8.8", "1.0.16.1"])         # ["US", "JP"]

A CLI is installed alongside the library:

$ iptocc 8.8.8.8 1.0.16.1
8.8.8.8 US
1.0.16.1 JP

Migrating from 2.x

# 2.x
from iptocc import get_country_code, CountryCodeNotFound
try:
    cc = get_country_code("8.8.8.8")
except CountryCodeNotFound:
    cc = None

# 3.x
from iptocc import country_code
cc = country_code("8.8.8.8")  # returns None on miss

See also

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iptocc-3.3.0.tar.gz (444.6 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

iptocc-3.3.0-cp310-abi3-win_amd64.whl (514.4 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (622.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

iptocc-3.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (623.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.0-cp310-abi3-macosx_11_0_arm64.whl (619.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.0-cp310-abi3-macosx_10_12_x86_64.whl (614.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file iptocc-3.3.0.tar.gz.

File metadata

  • Download URL: iptocc-3.3.0.tar.gz
  • Upload date:
  • Size: 444.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for iptocc-3.3.0.tar.gz
Algorithm Hash digest
SHA256 2e54ec6513c75383d134493cab85e2098b1a519cae89dcc2b0719254892ef918
MD5 fb23bbf431d2eb3c15173b092537d823
BLAKE2b-256 94660aa55268343d1d91dcf339e9f2724f9008da299962f7560ce8f138232d7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.0.tar.gz:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: iptocc-3.3.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.4 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for iptocc-3.3.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 46869f97872f993b79b18737be52056b72fd730fcb160e5eb7f54d1dd7fa7657
MD5 0c0fe30b75eb226d7fd9cedb8a8eaf65
BLAKE2b-256 98ec7effb7bc5ad1058c33f7a259aed70e76ef1ed1461a1d545a99e713587530

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.0-cp310-abi3-win_amd64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f4eefb273f88de4a652b4dca9f589d63f924f83c1ddf10713daf497da5c53938
MD5 f26e624c517797eb5cfb71ac4eb4ea8a
BLAKE2b-256 58b501c218b134f45483391021832be0e2e10d834ea877cd58c3e0ea6737aa63

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 afec5e2cb34bc95be0ec392f4f4f0a3d78ccf86bfcb25a3522d6915ba23f0ca7
MD5 a950ced79f21c207c286ec1280d8b516
BLAKE2b-256 20eb917f16d4991ed4bb062c2cd35a6b8b934e27575bf8f006d97150dcd02eb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 bbb3a16ae0935cb60a6ef4ffb39498abbcb347c20b4fa7d4b5abe82a791a5608
MD5 3f92dec6ee5130c16ff5c85e434a2142
BLAKE2b-256 6590319d6d928e9c5abd15bab4f1afda0fee8f52788466f230047fdfef1baec6

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file iptocc-3.3.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 f87dc27db31bd1c1426c108ee4fd77003bbaf1ab5d7052ad42f469509e107687
MD5 a4774093ea93d0d356d5ad71c69e89af
BLAKE2b-256 6afc2d1771a00cde99c55c7448c975309fe7a68092e956331d6b61b9431c67d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.0-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: publish-pypi.yml on roniemartinez/IPToCC

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page