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.43.tar.gz (445.3 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.43-cp310-abi3-win_amd64.whl (513.7 kB view details)

Uploaded CPython 3.10+Windows x86-64

iptocc-3.3.43-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (625.6 kB view details)

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

iptocc-3.3.43-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (625.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

iptocc-3.3.43-cp310-abi3-macosx_11_0_arm64.whl (621.6 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

iptocc-3.3.43-cp310-abi3-macosx_10_12_x86_64.whl (615.5 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: iptocc-3.3.43.tar.gz
  • Upload date:
  • Size: 445.3 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.43.tar.gz
Algorithm Hash digest
SHA256 a64c80db6efd7064167f836abf51b3e01c66fa3b04adcdcf19754404b16e897f
MD5 f8aac32dd3ffc56b4c7700bd258dfece
BLAKE2b-256 2776f4b98e8bf62eeb0942f5e1455282a54f8197e49c75b06937c88d5dcbfd91

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: iptocc-3.3.43-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 513.7 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.43-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 3b8a34e88f21054c1a5e0aedc9e2e49fb7ec0e2a66b08d55a743059103481471
MD5 199e4f69ff15d9b93330f92ac5c8b9ed
BLAKE2b-256 e08cb72e050ca3c0ec495a87d57709112ef25e23396457cadb296057a65ba546

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.43-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 90d4c5f7fed55462e3d00da046302adfb270f36742e8fce819db41a6e45bdb14
MD5 f2cffadee2623ca17508b9d127029ad2
BLAKE2b-256 a4e459f485c24e72992a74597f60de22ea5b48677ad2fa0f2c15983145a81a16

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.43-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 3a27ba0abded52e1298c5b61e97454893310599fb8ef8864e9fa979f17c7adfd
MD5 e505bff78e4537daa2ebab9e9393c2e0
BLAKE2b-256 cbb03ea406b369b01203fc6a966bd72fc904217943cd5727091275327f98f430

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.43-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7d70099d051248ca437d181536da1d514e9d9f3fe902e8a9b173e93c29dfb16d
MD5 3be876bc99a65be9defdb197791b666f
BLAKE2b-256 898b2f5cbb574f7f229994507dc68485348af74a322af476d5e349928aa83f51

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for iptocc-3.3.43-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 7b49acdf36b4eabb86cc779730fb0ba1b2a9d6d6bde2575ca701a7fd1da2107c
MD5 0a942b59993810dcd3dc4208a3ba75e8
BLAKE2b-256 6c4faf97662db42fba00ecee5f93496bb484f33ac7a178732691d0297f11c09a

See more details on using hashes here.

Provenance

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