All checks were successful
		
		
	
	continuous-integration/drone/push Build is passing
				
			Add base code from https://gitea.communiquons.org/pierre/oidc-test-client with minor improvements Reviewed-on: #1
		
			
				
	
	
	
		
			1.1 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			1.1 KiB
		
	
	
	
	
	
	
	
Actix Remote IP extractor
Tiny extractor of remote user IP address, that handles reverse proxy.
The X-Forwarded-For header is automatically parsed when the request comes from a defined proxy, to determine the real remote client IP Address.
Note : regarding IPv6 addresses, the local part of the address is discarded. For example, the  IPv6 client 2001:0db8:85a3:0000:0000:8a2e:0370:7334 will be returned as 2001:0db8:85a3:0000:0000:0000:0000:0000
Configuration
Configure it when you configure your Actix server:
HttpServer::new(move || {
    App::new()
        .app_data(web::Data::new(RemoteIPConfig {
            proxy: Some("IP".to_string())
        }))
    // ...
})
Usage
In your route, add a RemoteIP parameter:
#[get("/")]
async fn home(remote_ip: RemoteIP) -> HttpResponse {
    let ip: IpAddr = remote_ip.0;
    // ...
}