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


Release history Release notifications | RSS feed

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.80.tar.gz (445.9 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.80-cp310-abi3-win_amd64.whl (515.6 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.80-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.5 kB view details)

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

iptocc-3.3.80-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.3 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.80-cp310-abi3-macosx_11_0_arm64.whl (618.9 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.80-cp310-abi3-macosx_10_12_x86_64.whl (618.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.80.tar.gz
  • Upload date:
  • Size: 445.9 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.80.tar.gz
Algorithm Hash digest
SHA256 deaca97c3557d59d0be92e142b01a588ad2ab383818f389e9a3966bb3fb4511a
MD5 fe0549fd7d40928eaeb5de313261863d
BLAKE2b-256 d4c32e604736558eb3eea9cfeb5e98ee33bf2d64bea5d35192848296d625440e

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.80.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.80-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: iptocc-3.3.80-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.6 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.80-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 7bfef5f300cf0fcf94c260dd1cbc538adfa0cfb8e30fb481db12317b02e8b5d7
MD5 74205ec69a2b8be79a13ada1fec4a998
BLAKE2b-256 6fc308e00a357966d226758daaf60f358bc4c8af149b1e9014c93b20a1096537

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.80-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.80-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.80-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 331a7555836db7257b7cad5bf589af93069f2a11b4436d31d116348f4d1ac4a4
MD5 8b65b9895071ff15e6aabe97ecd39027
BLAKE2b-256 5b15fc8950c284507bc6beef6e4c9d360019ee0a41fdc2601362abba2301ff8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.80-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.80-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.80-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3bef2e5782fa43b78f43724f66c1648f98afe614cc21386b82e5c352dd7f0e60
MD5 02db7c22f030bbab51036f7d4d450a7b
BLAKE2b-256 004d0bc182751799a256699bbfa3d08976b3ea191a6806535a28e02cf8d1b3d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.80-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.80-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.80-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 542b0ef471f08dbfb7ab589061ebb3c58df9a98be8c558999c39afa8185487c9
MD5 f2941e61e97c2299e724517432171e68
BLAKE2b-256 c8408fcfdd2457b205d89a21f931d3257d4fca500d93cb7ed902eb449e1730bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.80-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.80-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for iptocc-3.3.80-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 53d475a763c7de08f02664847bcb7dbc7477456c54225742571d4a0b9ba19489
MD5 05086100d30e9f834608fe1973441712
BLAKE2b-256 79c88e0c2d6280f49a634873ddc56b231c33b2b7c0aca9ec0e20c4f254c30031

See more details on using hashes here.

Provenance

The following attestation bundles were made for iptocc-3.3.80-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