# icloud
基于当前公网 IP 所在地,返回就近的 Apple iCloud 存储服务器地址(域名与解析 IP)。
- 返回内容包含:`address`(如 `https://content.icloud.com`)、`resolved_ip`(DNS 解析得到的就近 CDN IP)、`ip`、`country_code`、`region`、`city`、`note`(说明/免责声明)。
- 结果为近似参考:苹果的资源调度与 CDN 解析是动态的,实际数据托管与访问路径可能不同。
## 安装
```bash
cargo add icloud
```
或在 `Cargo.toml` 添加:
```toml
[dependencies]
icloud = "0.1"
```
## 使用示例
```rust
use icloud::{storage_address, storage_address_offline};
fn main() {
let addr = storage_address();
println!(
"iCloud地址: {address}, 解析IP: {resolved:?}, IP: {ip:?}, 国家: {cc:?}, 省份: {region:?}, 城市: {city:?}\n备注: {note:?}",
address = addr.address,
resolved = addr.resolved_ip,
ip = addr.ip,
cc = addr.country_code,
region = addr.region,
city = addr.city,
note = addr.note,
);
// 离线回退
let offline = storage_address_offline();
println!("离线回退地址: {}", offline.address);
}
```
## 工作原理
- 调用 `ipinfo.io` 获取当前公网 IP 的地理信息(城市/区域/国家)。
- 选取 iCloud 内容域名 `content.icloud.com` 作为存储服务入口(常用于照片/文件内容分发)。
- 通过系统 DNS 解析该域名,取首个解析 IP 作为“就近节点”的近似结果。
## 限制与免责声明
- 苹果的 iCloud 数据调度与 CDN 解析是动态的,返回的解析 IP 仅为近似参考。
- 中国大陆(`CN`)用户的 iCloud 数据由云上贵州(GCBD)托管;域名解析与实际存储位置由苹果与 CDN 动态决定。
- 如果无法联网或解析失败,可使用 `storage_address_offline()` 返回固定入口域名。
## 许可证
MIT © 2025 useful-cargo-packages