Struct actix_web::dev::ConnectionInfo
source · [−]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
sourceimpl ConnectionInfo
impl ConnectionInfo
sourcepub fn scheme(&self) -> &str
pub fn scheme(&self) -> &str
Scheme of the request.
Scheme is resolved through the following headers, in this order:
- Forwarded
- X-Forwarded-Proto
- Uri
sourcepub fn host(&self) -> &str
pub fn host(&self) -> &str
Hostname of the request.
Hostname is resolved through the following headers, in this order:
- Forwarded
- X-Forwarded-Host
- Host
- Uri
- Server hostname
sourcepub fn remote_addr(&self) -> Option<&str>
pub fn remote_addr(&self) -> Option<&str>
Remote address of the connection.
Get remote_addr address from socket address.
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 headers, in this order:
- Forwarded
- X-Forwarded-For
- remote_addr name of opened socket
Security
Do not use this function for security purposes, unless you can ensure the Forwarded and
X-Forwarded-For headers cannot be spoofed by the client. If you want the client’s socket
address explicitly, use HttpRequest::peer_addr()
instead.
Trait Implementations
sourceimpl Clone for ConnectionInfo
impl Clone for ConnectionInfo
sourcefn clone(&self) -> ConnectionInfo
fn clone(&self) -> ConnectionInfo
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Debug for ConnectionInfo
impl Debug for ConnectionInfo
sourceimpl Default for ConnectionInfo
impl Default for ConnectionInfo
sourcefn default() -> ConnectionInfo
fn default() -> ConnectionInfo
Returns the “default value” for a type. Read more
sourceimpl FromRequest for ConnectionInfo
impl FromRequest for ConnectionInfo
type Error = Infallible
type Error = Infallible
The associated error which can be returned.
type Future = Ready<Result<ConnectionInfo, <ConnectionInfo as FromRequest>::Error>>
type Future = Ready<Result<ConnectionInfo, <ConnectionInfo as FromRequest>::Error>>
Future that resolves to a Self.
sourcefn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
fn from_request(req: &HttpRequest, _: &mut Payload) -> Self::Future
Create a Self from request parts asynchronously.
sourcefn extract(req: &HttpRequest) -> Self::Future
fn extract(req: &HttpRequest) -> Self::Future
Create a Self from request head asynchronously. Read more
Auto Trait Implementations
impl RefUnwindSafe for ConnectionInfo
impl Send for ConnectionInfo
impl Sync for ConnectionInfo
impl Unpin for ConnectionInfo
impl UnwindSafe for ConnectionInfo
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> Instrument for T
impl<T> Instrument for T
sourcefn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
sourcefn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
sourceimpl<T> WithSubscriber for T
impl<T> WithSubscriber for T
sourcefn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> where
S: Into<Dispatch>,
Attaches the provided Subscriber
to this type, returning a
WithDispatch
wrapper. Read more
sourcefn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Attaches the current default Subscriber
to this type, returning a
WithDispatch
wrapper. Read more