2 个版本
0.1.0 | 2023 年 4 月 29 日 |
---|
#11 在 #client-ip
793 每月下载量
10KB
187 行
Actix Remote IP 提取器
远程用户 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