1 个不稳定版本
0.3.0 | 2022年6月23日 |
---|---|
0.2.0 |
|
#6 在 #获取
7KB
geoiplocation
获取给定 IP 的位置数据
根据 IP 地址查找位置。
对 JSON 响应返回的字段提供抽象。为给定查询返回一个 Struct
。
您可以使用类似以下命令设置自己的位置 API 环境:export SUBCOM_LOCATION_API_URL=<your-url>
最终 URL 形式类似于 your-url/IP?apikey=KEY
。
提供了两种方法(更多文档请参阅)
异步fn get_location(ip: &str, key: &str) -> anyhow::Result<Option<Location>>
异步fn get_location_fallback(ip: &str, key: &str) -> anyhow::Result<HashMap<String, String>>
注意:仍在生产中,因此一些东西可能会损坏或更改,您可以使用 cargo doc --open
以获得更好的体验或在此处阅读:这里。
示例
use geoiplocation::get_location;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let resp = get_location(
"8.8.8.8".parse().unwrap(),
"YOUR-KEY",
)
.await?;
println!("{:?}", resp);
Ok(())
}
输出
Some(
Location {
ip: Some(
"8.8.8.8",
),
city: Some(
"",
),
country: Some(
"United States",
),
continent: Some(
"North America",
),
},
)
依赖项
~6–19MB
~276K SLoC