pub struct ConnectedIpKeyExtractor;Expand description
Rate limit by the actual TCP connection IP address.
This is the secure way to do IP-based rate limiting. It uses the
RemoteAddr extension set by the HTTP server, which represents the actual
TCP peer address and cannot be spoofed by clients.
§Prerequisites
Your HTTP server must set the RemoteAddr extension on each request:
ⓘ
request.insert_extension(RemoteAddr(peer_addr.ip()));If RemoteAddr is not set, this extractor returns None (request is not rate-limited).
§Security
This extractor is safe to use without a reverse proxy, as it relies on the TCP connection’s peer address rather than client-supplied headers.
Trait Implementations§
Source§impl Clone for ConnectedIpKeyExtractor
impl Clone for ConnectedIpKeyExtractor
Source§fn clone(&self) -> ConnectedIpKeyExtractor
fn clone(&self) -> ConnectedIpKeyExtractor
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ConnectedIpKeyExtractor
impl Debug for ConnectedIpKeyExtractor
Auto Trait Implementations§
impl Freeze for ConnectedIpKeyExtractor
impl RefUnwindSafe for ConnectedIpKeyExtractor
impl Send for ConnectedIpKeyExtractor
impl Sync for ConnectedIpKeyExtractor
impl Unpin for ConnectedIpKeyExtractor
impl UnwindSafe for ConnectedIpKeyExtractor
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
Mutably borrows from an owned value. Read more
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: NoopSpan) -> Self
fn instrument(self, _span: NoopSpan) -> Self
Instruments this future with a span (no-op when disabled).
Source§fn in_current_span(self) -> Self
fn in_current_span(self) -> Self
Instruments this future with the current span (no-op when disabled).