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.90.tar.gz (446.2 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.90-cp310-abi3-win_amd64.whl (516.1 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.90-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.9 kB view details)

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

iptocc-3.3.90-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.90-cp310-abi3-macosx_11_0_arm64.whl (619.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.90-cp310-abi3-macosx_10_12_x86_64.whl (618.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

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

File hashes

Hashes for iptocc-3.3.90.tar.gz
Algorithm Hash digest
SHA256 fa5ea87af48dc5efebc081a826bcd32ce366ed1e52e14e06d5ec554f8f48dee3
MD5 9d764f42af9dc1414f6b4a4049201162
BLAKE2b-256 3b2a6d70f75b48c3dd71573fcd302a2b30fe75148dbc9f306ee92c60e3978ecc

See more details on using hashes here.

Provenance

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

File metadata

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

File hashes

Hashes for iptocc-3.3.90-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 9b70be6ca76f7e80b93cde698fd92e193b24f5b9d7794c1a9c2054c19dd9acf9
MD5 46bdd108f806f2fca1e3ba7e76fa7539
BLAKE2b-256 8920a6d221927826deb762ffdcdb87ca8b2b1c033d628ee6b02111c26f37fe5b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.90-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ce410267ddb3b89097a9b06eeaa6bf757312f462c06fa0e4ac16583c90b82f21
MD5 d5fc86e16458db199674c27479577fbd
BLAKE2b-256 a853afffa572e78b830d4e27f0dc1f7b7f3d71c2ab9cb4aa8421e32b955ee509

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.90-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 35ef1953baa5d6e5a0584a85d700a95020aeceb296a9d1d2c4cd4e171d5da8a3
MD5 47291297ecc3e9dcdde0743c1d8e3a13
BLAKE2b-256 1abab02a786131f6430377f1c7fd813002d1e262e2e36d001ffc4ad6bc1fa395

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.90-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 961f02f4435870b043cf67eeb6a881da460d2bfb0afca4d8b29caa103791fc86
MD5 7fac5ed71200365ad500a0febe0d8ab0
BLAKE2b-256 0863c70f77ebcfe6727a22b81cf2feb4390d82d7a7e3a2e7cc8def8f238f8a6b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.90-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 fb7f12da4a4233c1195432a1c53b23d395f005ddb69a9694eddfa1102fcdbddc
MD5 24cd56de99272e52739deee94aaaf14f
BLAKE2b-256 87e7f13916f8a051447a7f491d2ad9b893f50d7275b9ae0b22d885747732abd3

See more details on using hashes here.

Provenance

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