License Crates.io Docs.rs

axum-client-ip

A client IP address extractor for Axum

It sequentially looks for an IP in:

Usage

```rust use axum::{extract::ConnectInfo, routing::get, Router}; use axumclientip::ClientIp; use std::net::SocketAddr;

pub async fn handler(ClientIp(ip): ClientIp) -> String { ip.to_string() }

[tokio::main]

async fn main() { let app = Router::new().route("/", get(handler));

axum::Server::bind(&"0.0.0.0:3000".parse().unwrap())
    .serve(
        // Don't forget to add `ConnetInfo` if you aren't behind a proxy
        app.into_make_service_with_connect_info::<SocketAddr, _>()
    )
    .await
    .unwrap()

} ```

Contributing

We appreciate all kinds of contributions, thank you!

Note on README

The README.md file isn't meant to be changed directly. It instead generated from the crate's docs by the [cargo-readme] command:

If you have [rusty-hook] installed the changes will apply automatically on commit.

License

This project is licensed under the MIT license.