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.60.tar.gz (445.6 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.60-cp310-abi3-win_amd64.whl (514.5 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.60-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (626.2 kB view details)

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

iptocc-3.3.60-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (626.2 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.60-cp310-abi3-macosx_11_0_arm64.whl (622.8 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.60-cp310-abi3-macosx_10_12_x86_64.whl (615.3 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.60.tar.gz
  • Upload date:
  • Size: 445.6 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.60.tar.gz
Algorithm Hash digest
SHA256 ad244fb86cbeb69b623125b359eef6d8bfdda39ae44278ef63691b580c490bb9
MD5 73524c4f4d4c5b3943baed7f1b54042c
BLAKE2b-256 14aa72be6d39e91dc7baca2ad3308cc9fd23ef53b50967718366985c5ff92084

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.60-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 514.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.60-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 2b45979bf55f1e773e0a67818ab01f46f2c46b02dba9dd46ad71a40428ad2f89
MD5 35dd406174ff60295f516f6421eb0685
BLAKE2b-256 559bda9eaecf36d30e8ce5d6cddd29528a4bee294b5d811d674bfa199299a03b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.60-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2c799fc4ac993fae110dff5508df0759c2cbaebd364f30dace8f4493d4a1c3a8
MD5 bd0593afb3fb30923703648b740fe0ad
BLAKE2b-256 03c3c4a5a856285f7c52e4db7d2ac2e02af7bae9e97410d85b3a87c6172c13a0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.60-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d65a4985955bbd4837132e79bc5955cfd99df1b57a41c04c35fb40f4381f602a
MD5 76ad9a0fbf482964f24efa66d0e35996
BLAKE2b-256 f833d1ccf772881cbb1f9beab2ea449c8c594ec0b5ed2d1f4fb44a30a4408e8f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.60-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5830156678e40b843326f8b17933d4fd5ef3d82e44c90ca73f51137581f54455
MD5 d3fca403504be885a2686c15075ec54c
BLAKE2b-256 5a897215a2eb6d3d497a4a3fdfbc3c96b010aecd65f42f23531aa25e08122aaf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.60-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7c1754ba322ce444861519e8ab580006d4396466c73034446783725175be4cb7
MD5 ca7398c300688402165ec9d3c1abe394
BLAKE2b-256 83ea289dece6123ce2d95d83fd0e00fb7caa17cd28591adb5075aa8adc3938b4

See more details on using hashes here.

Provenance

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