#ip-address #client-ip #remote #extractor #tiny #real #header

actix-remote-ip

小巧的提取器,用于获取真实客户端 IP 地址,解析 X-Forwarded-For 头部信息

2 个版本

0.1.0 2023 年 4 月 29 日

#11#client-ip

Download history • Rust 包仓库 47/week @ 2024-03-14 • Rust 包仓库 128/week @ 2024-03-21 • Rust 包仓库 99/week @ 2024-03-28 • Rust 包仓库 205/week @ 2024-04-04 • Rust 包仓库 148/week @ 2024-04-11 • Rust 包仓库 113/week @ 2024-04-18 • Rust 包仓库 67/week @ 2024-04-25 • Rust 包仓库 74/week @ 2024-05-02 • Rust 包仓库 187/week @ 2024-05-09 • Rust 包仓库 175/week @ 2024-05-16 • Rust 包仓库 228/week @ 2024-05-23 • Rust 包仓库 119/week @ 2024-05-30 • Rust 包仓库 181/week @ 2024-06-06 • Rust 包仓库 187/week @ 2024-06-13 • Rust 包仓库 196/week @ 2024-06-20 • Rust 包仓库 224/week @ 2024-06-27 • Rust 包仓库

793 每月下载量

GPL-2.0-or-later

10KB
187

Actix Remote IP 提取器

Build Status Crate

远程用户 IP 地址的小巧提取器,可处理反向代理。

当请求来自定义代理时,会自动解析 X-Forwarded-For 头部信息,以确定真实远程客户端 IP 地址。

注意:关于 IPv6 地址,地址的本地部分将被丢弃。例如,IPv6 客户端 2001:0db8:85a3:0000:0000:8a2e:0370:7334 将返回为 2001:0db8:85a3:0000:0000:0000:0000:0000

配置

在配置 Actix 服务器时配置它

HttpServer::new(move || {
    App::new()
        .app_data(web::Data::new(RemoteIPConfig {
            proxy: Some("IP".to_string())
        }))
    // ...
})

用法

在您的路由中添加一个 RemoteIP 参数

#[get("/")]
async fn home(remote_ip: RemoteIP) -> HttpResponse {
    let ip: IpAddr = remote_ip.0;
    // ...
}

依赖

~14–28MB
~463K SLoC