clientIP
Provides the value of X-Forwarded-For
, Remote-Address
, or X-Real-IP
headers as an instance of
HttpIp
.
Signature
def clientIP: Directive1[RemoteAddress]
Description
spray-can and spray-servlet adds the Remote-Address
header to every request automatically if the respective
setting spray.can.server.remote-address-header
or spray.servlet.remote-address-header
is set to on
.
Per default it is set to off
.
Example
val route = clientIP { ip =>
complete("Client's ip is " + ip.toOption.map(_.getHostAddress).getOrElse("unknown"))
}
Get("/").withHeaders(`Remote-Address`("192.168.3.12")) ~> route ~> check {
responseAs[String] === "Client's ip is 192.168.3.12"
}