#位置 #IP #JSON #获取 #JSON 响应

geoiplocation

基于 IP 获取位置

1 个不稳定版本

0.3.0 2022年6月23日
0.2.0 2022年6月22日

#6#获取

MIT 许可证

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