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.54.tar.gz (445.7 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.54-cp310-abi3-win_amd64.whl (514.3 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.54-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.8 kB view details)

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

iptocc-3.3.54-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.7 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.54-cp310-abi3-macosx_11_0_arm64.whl (622.7 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.54-cp310-abi3-macosx_10_12_x86_64.whl (615.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.54.tar.gz
  • Upload date:
  • Size: 445.7 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.54.tar.gz
Algorithm Hash digest
SHA256 e57f17523cfb2c04003e7790a72d184f6114dc0dad845ddc6c05f0378d1b2bcd
MD5 404b78f0ef66a0aad8346f159b1c2ced
BLAKE2b-256 8af6132b6883d8e550807992668c906ad29805a0e07fee3bc7aefc26fe84dff1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.54-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.3 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.54-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e70afb60a025f27dafca2ae7ccdc83cd98bd7083e53c26fa4b31527d1758c098
MD5 508c6bfcb9a414fc084ea402f960fac2
BLAKE2b-256 bcf70fbfccdafb085ad2d6ed1749fb5490250e75b5eb57e3efb16c6af5150190

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.54-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a49aed35a46879f33344ac774e36e933d83e8c95c5f502b2fdfc2cf50431e3fa
MD5 58f58bac7ce7c492091c50930ce1d895
BLAKE2b-256 90b45e68e9101666fb7da8c1a2519dcd4ea913f13b866059d0cebcc4a588ab02

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.54-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 2c93feddeda3c57039d18b1409f8fd700b62b3e3d77055fa57dd1b1dcbde29c9
MD5 8f91d2d37b126e12206b17a50693e637
BLAKE2b-256 72fbb54efa9b26e86eab0dafc64e487a51d73dbf076db148a11e65274a1e4c5b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.54-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 af3af9b4611055cefd688bf14c59a32d971188dc36fec62acbf3d47b1b85704f
MD5 028b725eb3ca87d7d7f9dd7774c1f401
BLAKE2b-256 3eda7e0c54b2b29cb29df464a9ba322e51e666dd009cc5e158be27dd3df0b23b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.54-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 4879a6b914a9e5621e039b1ba282f28da7a90bd1e8144b2b85b4fb266eedcb77
MD5 de6ad018e4588aba9c8da31c271480db
BLAKE2b-256 0f2bc2ff8a783005845cd214304e94aec557a711d789427612ea47cc68a961a4

See more details on using hashes here.

Provenance

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