Expand description
§CZDB Database Library
A Rust library for parsing and searching CZ-format IP geolocation databases.
§Features
- Supports both IPv4 and IPv6 address searches.
- Disk-based search (
CzdbDisk) for low memory usage. - Optional memory-mapped file support (
mmapfeature) viaCzdbMmap. - In-memory accelerated search via
CzdbMemory(available by default).
§Usage
- Create a database instance by loading the database file and providing a decryption key:
ⓘ
use czdb::CzdbDisk;
let db_path = "path/to/your/czdb_file";
let key = "your_base64_key";
let mut czdb = CzdbDisk::open(db_path, key).expect("Failed to load database");- Search for IP address geolocation data:
ⓘ
use std::net::IpAddr;
let ip: IpAddr = "8.8.8.8".parse().unwrap();
if let Some(location) = czdb.search(ip) {
println!("Location for IP {}: {}", ip, location);
} else {
println!("No location data found for IP {}", ip);
}§纯真CZDB解析库
这是一个用于解析和查询 CZDB 格式 IP 地理位置数据库的 Rust 库。
§功能
- 支持 IPv4 和 IPv6 地址查询。
- 提供磁盘搜索(
CzdbDisk)、可选 mmap(CzdbMmap)和可选内存加速(CzdbMemory)。
§使用方法
- 创建实例并加载数据库:
ⓘ
use czdb::CzdbDisk;
let db_path = "path/to/your/czdb_file";
let key = "your_base64_key";
let mut czdb = CzdbDisk::open(db_path, key).expect("Failed to load database");- 查询 IP 数据:
ⓘ
use std::net::IpAddr;
let ip: IpAddr = "8.8.8.8".parse().unwrap();
if let Some(location) = czdb.search(ip) {
println!("Location for IP {}: {}", ip, location);
} else {
println!("No location data found for IP {}", ip);
}Structs§
- Czdb
Disk - Disk-backed CZDB searcher.
- Czdb
Memory - In-memory CZDB searcher with a prebuilt index and string pool.
- Czdb
Mmap mmap - Mmap-backed CZDB searcher.