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.86.tar.gz (446.1 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.86-cp310-abi3-win_amd64.whl (515.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.86-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.8 kB view details)

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

iptocc-3.3.86-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (627.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.86-cp310-abi3-macosx_11_0_arm64.whl (619.2 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.86-cp310-abi3-macosx_10_12_x86_64.whl (618.4 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.86.tar.gz
  • Upload date:
  • Size: 446.1 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.86.tar.gz
Algorithm Hash digest
SHA256 fc63a40584e034b36029f37a766c6006b5f7ced21f15e41c48e0553aaab5ebe0
MD5 ab5a1adae158bbef59b552359c55a08e
BLAKE2b-256 b16a0b94a97547735e8e89d6e9cb9c5e07566c72de5151eaa9c4484ec3ec92c7

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.86-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.8 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.86-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 f42a9251c7962854d528ecf45f9d39d58bf292aa07b4537b07a03db2ae58c34d
MD5 a8544d635bc319e64dcb05266feb9050
BLAKE2b-256 d1eda1b51309f9981c7735d136a18952a11c15be2834db5abdfa4b2ddb6af6f9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.86-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 82dedc540804021bd928e17c4712a6f22d8e73022507de2924b3a9051738225c
MD5 d9cdf54c5323b9be12c7fc1b524bbbd7
BLAKE2b-256 f00045590f3f4393e2082b17d5d1a2623c837f326bc2876c16e710dadcdb6c58

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.86-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d9eb0609dca81633327f9646f005d7d6bb5161135fd0ee71788d41ed26227b48
MD5 5604e397534b97134ddf8d045d0777a5
BLAKE2b-256 174ae7713c15cd6abae105752786d4b26009ae96ac1816652366c6506febf7c9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.86-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5e566b1683e5320ef7bf78a1f7be9dba48e0032c762ee7e0a568a2a20ea59660
MD5 92eba4dfac344fb504899ce3748435b3
BLAKE2b-256 9844b77b570b6ee146778cc64845db5532023abda27ae2fe3b1ed373ceb638b7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.86-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a064eeae72641532f07014ad245d66f4fb7fd0dd335bf273a5e78f1a43e7a969
MD5 28f93ba060a2c64215cc9e1e50232328
BLAKE2b-256 3102283c0ae7a3c89a3559ae5bf91f0748d75704acf74356dd66f6350c0e0a19

See more details on using hashes here.

Provenance

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