๐ 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
๐งฉ Basic Setup
import ipatel as ip
test_ip = "8.8.8.8"
test_asn = 15169
๐ IP Enrichment
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