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.76.tar.gz (445.8 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.76-cp310-abi3-win_amd64.whl (515.5 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.76-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.4 kB view details)

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

iptocc-3.3.76-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.8 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.76-cp310-abi3-macosx_11_0_arm64.whl (618.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.76-cp310-abi3-macosx_10_12_x86_64.whl (618.1 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.76.tar.gz
  • Upload date:
  • Size: 445.8 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.76.tar.gz
Algorithm Hash digest
SHA256 f07855983db94a73f6675452845f0a02dda77341c2675215b08e383c2b5e2047
MD5 851688f1f30816e17268f7b907e89cf7
BLAKE2b-256 9add3212adba45b7b13706051610701bfaf479ae37bb12a6e587037a81356304

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.76-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 515.5 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.76-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e0b59ab90bde12f3591b2067d2e50784f3b80e46ad0b2392c0911c73c0fd49ef
MD5 37ca41ee3c11f62da5de21ad9adc4eb4
BLAKE2b-256 e28101f411c19528c264d582e79569f77b06fb49e30c6f25fd1a67ac19eb371d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.76-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 61a95e14d691b692e0ef61471b49fb6977b89e44f0f42b9232bc854d4b3209d8
MD5 da323902cade7d3a8e6e98f120c6fbc9
BLAKE2b-256 176a6b31c0b6d397086195e7a1477e45258189abe68f2ca3dd6e98e2daea2f12

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.76-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 9f152c2a8fd7a12407de54e54affc1afe7adbb0e012be85b28603aa1503cbd34
MD5 86eac47358eef091ad3876873bdc4206
BLAKE2b-256 d188bbbb4dee237c9e03b4df1c5351a1ccdc3add11a15a723101aad7d72775d2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.76-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f1d1ecabf633d864723a52f9b0767b08d94ec598862cdd5203835f2d36831ddb
MD5 64e7acdaa045e3f0322428f636965a49
BLAKE2b-256 f335f437e438a6c9386e6926e71281dcc605d794fd5433601b4e955c36f299be

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.76-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 58ca968784491950c3c2ef626fc8ed01768c07c0eb02fa299638f58529202669
MD5 836078b4fc6cc78a0f40e7159445ea0c
BLAKE2b-256 08153ce31c26c4ab071798bbb7be72984df3ca1d7f6698eebfd330cbc309236e

See more details on using hashes here.

Provenance

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