#warp #real #ip #filter #remote #client #header

warp-real-ip

Warp filter to get the "real ip" of the remote client

3 unstable releases

0.2.0 Jan 20, 2021
0.1.1 Jan 6, 2021
0.1.0 Dec 3, 2020

#1068 in HTTP server

Download history 174/week @ 2024-01-01 191/week @ 2024-01-08 219/week @ 2024-01-15 221/week @ 2024-01-22 229/week @ 2024-01-29 246/week @ 2024-02-05 212/week @ 2024-02-12 183/week @ 2024-02-19 60/week @ 2024-02-26 46/week @ 2024-03-04 19/week @ 2024-03-11 57/week @ 2024-03-18 30/week @ 2024-03-25 72/week @ 2024-04-01 59/week @ 2024-04-08 24/week @ 2024-04-15

188 downloads per month
Used in webb-relayer

MIT/Apache

6KB
65 lines

wrap-real-ip

Warp filter to get the "real ip" of the remote client

This uses the "x-forwarded-for", "x-real-ip" or "forwarded" headers set by reverse proxies. To stop clients from abusing these headers, only headers set by trusted remotes will be accepted.

Example

use warp::Filter;
use warp_real_ip::real_ip;
use std::net::IpAddr;

let proxy_addr = [127, 10, 0, 1].into();
warp::any()
    .and(real_ip(vec![proxy_addr]))
    .map(|addr: Option<IpAddr>| format!("Hello {}", addr.unwrap()));

Dependencies

~8–19MB
~250K SLoC