๐ŸŒ ipatel โ€” IP Enrichment Library & CLI


๐Ÿ” What is ipatel?

ipatel is a lightweight Python library and CLI tool that enriches IP addresses and ASNs with useful metadata:

  • ๐Ÿ›ฐ๏ธ ASN (Autonomous System Number)
  • ๐Ÿข AS Owner / Organization
  • ๐ŸŒŽ Country Code
  • ๐Ÿงญ IP Type โ€” Public / Private / Reserved
  • ๐Ÿ“ถ IP Ranges for ASN

โœจ Key Features

  • โšก Fast and works offline after initial DB download
  • ๐Ÿ”„ Auto-updates the enrichment database
  • ๐Ÿ’ป Simple and intuitive Python API & CLI
  • ๐Ÿงช Fully tested, clean, and modular codebase
  • ๐Ÿ“ฆ Easy to install via pip

๐Ÿš€ Quickstart Guide

๐Ÿ”ง Installation

pip install ipatel

๐Ÿงฉ Basic Setup

import ipatel as ip

test_ip = "8.8.8.8"
test_asn = 15169

๐ŸŒ IP Enrichment

๐Ÿ”น Enrich IP with full metadata

ip.enrich_ip("8.8.8.8")

Returns:

{
    'ip': '8.8.8.8',
    'asn': 15169,
    'country_code': 'US',
    'owner': 'GOOGLE',
    'ip_type': 'Public'
}

๐Ÿง  ASN Lookup Functions

Function Description Example
ip.get_record(ip) Full ASN record ip.get_record("8.8.8.8")
ip.get_asn(ip) Get ASN only 15169
ip.get_country_code(ip) Get country code "US"
ip.get_owner(ip) Get AS owner "GOOGLE"
ip.get_ip_ranges_for_asn(asn) List of IP ranges for ASN ip.get_ip_ranges_for_asn(15169)

๐Ÿ› ๏ธ Utilities

Function Description Output
ip.ip_to_int("8.8.8.8") IP โ†’ Integer 134744072
ip.int_to_ip(134744072) Integer โ†’ IP "8.8.8.8"
ip.get_ip_type("127.0.0.1") Detect IP type "Loopback"

๐Ÿ”„ Database Management

Task Function Description
๐Ÿ“ฅ Download DB ip.download_ip2asn_db() Manually fetch latest DB
๐Ÿ” Ensure Fresh DB ip.ensure_ip2asn_db() Checks & auto-downloads if outdated

๐Ÿงช Test Script

def run_tests():
    ip.ensure_ip2asn_db()
    print(ip.enrich_ip("8.8.8.8"))

if __name__ == "__main__":
    run_tests()

๐Ÿ“ Notes

  • IPv4 only (IPv6 support planned)
  • Handles loopback, private, and reserved IPs safely
  • CLI and API produce consistent outputs

๐Ÿ“š Learn More