pub struct ConnectionInfo { /* private fields */ }Expand description
HTTP connection information.
ConnectionInfo implements FromRequest and can be extracted in handlers.
§Examples
use actix_web::dev::ConnectionInfo;
async fn handler(conn: ConnectionInfo) -> impl Responder {
    match conn.host() {
        "actix.rs" => HttpResponse::Ok().body("Welcome!"),
        "admin.actix.rs" => HttpResponse::Ok().body("Admin portal."),
        _ => HttpResponse::NotFound().finish()
    }
}§Implementation Notes
Parses Forwarded header information according to RFC 7239 but does not try to
interpret the values for each property. As such, the getter methods on ConnectionInfo return
strings instead of IP addresses or other types to acknowledge that they may be
obfuscated or unknown.
If the older, related headers are also present (eg. X-Forwarded-For), then Forwarded
is preferred.
Implementations§
Source§impl ConnectionInfo
 
impl ConnectionInfo
Sourcepub fn realip_remote_addr(&self) -> Option<&str>
 
pub fn realip_remote_addr(&self) -> Option<&str>
Real IP (remote address) of client that initiated request.
The address is resolved through the following, in order:
ForwardedheaderX-Forwarded-Forheader- peer address of opened socket (same as 
peer_addr) 
§Security
Do not use this function for security purposes unless you can be sure that the Forwarded
and X-Forwarded-For headers cannot be spoofed by the client. If you are running without a
proxy then obtaining the peer address would be more appropriate.
Sourcepub fn peer_addr(&self) -> Option<&str>
 
pub fn peer_addr(&self) -> Option<&str>
Returns serialized IP address of the peer connection.
See HttpRequest::peer_addr for more details.
Trait Implementations§
Source§impl Clone for ConnectionInfo
 
impl Clone for ConnectionInfo
Source§fn clone(&self) -> ConnectionInfo
 
fn clone(&self) -> ConnectionInfo
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
 
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ConnectionInfo
 
impl Debug for ConnectionInfo
Source§impl Default for ConnectionInfo
 
impl Default for ConnectionInfo
Source§fn default() -> ConnectionInfo
 
fn default() -> ConnectionInfo
Source§impl FromRequest for ConnectionInfo
 
impl FromRequest for ConnectionInfo
Source§type Error = Infallible
 
type Error = Infallible
Source§type Future = Ready<Result<ConnectionInfo, <ConnectionInfo as FromRequest>::Error>>
 
type Future = Ready<Result<ConnectionInfo, <ConnectionInfo as FromRequest>::Error>>
Self. Read moreSource§fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
 
fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
Self from request parts asynchronously.Auto Trait Implementations§
impl Freeze for ConnectionInfo
impl RefUnwindSafe for ConnectionInfo
impl Send for ConnectionInfo
impl Sync for ConnectionInfo
impl Unpin for ConnectionInfo
impl UnwindSafe for ConnectionInfo
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
    T: Clone,
 
impl<T> CloneToUninit for Twhere
    T: Clone,
Source§impl<T> Instrument for T
 
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more