Expand description
§client-ip
Secure extraction of a client IP from http::HeaderMap. The code was initially extracted from the axum-client-ip crate for non-axum use.
If you’re maintaining client IP extraction in other frameworks based on http, consider using this crate, so we can handle security-sensitive code in one place. Look at the axum-client-ip integration for reference.
§Supported extractors
Open an issue if there’s an uncovered header or send a PR straight away.
Extractor | Header Used | Typical Proxy / Service |
---|---|---|
cf_connecting_ip | CF-Connecting-IP | Cloudflare |
cloudfront_viewer_address | CloudFront-Viewer-Address | AWS CloudFront |
fly_client_ip | Fly-Client-IP | Fly.io |
rightmost_forwarded | Forwarded | Proxies supporting RFC 7239 (extracts rightmost for= ) |
rightmost_x_forwarded_for | X-Forwarded-For | Nginx, Apache, HAProxy, CDNs, LBs |
true_client_ip | True-Client-IP | Cloudflare, Akamai |
x_real_ip | X-Real-Ip | Nginx |
§Contributing
- please run .pre-commit.sh before sending a PR, it will check everything
§License
This project is licensed under the MIT license.
Enums§
- Error
- Errors that can occur during IP extraction
Functions§
- cf_
connecting_ ip - Extracts client IP from
CF-Connecting-IP
(Cloudflare) header - cloudfront_
viewer_ address - Extracts client IP from
CloudFront-Viewer-Address
(AWS CloudFront) header - fly_
client_ ip - Extracts client IP from
Fly-Client-IP
(Fly.io) header - rightmost_
forwarded forwarded-header
- Extracts the rightmost IP from
Forwarded
header - rightmost_
x_ forwarded_ for - Extracts the rightmost IP address from the comma-separated list in the value
of the last
X-Forwarded-For
header. - true_
client_ ip - Extracts client IP from
True-Client-IP
(Akamai, Cloudflare) header - x_
real_ ip - Extracts client IP from
X-Real-Ip
(Nginx) header