I had code like this in Ruby:
@clientipaddress = request.env["HTTP_CLIENT_IP"]
if (@clientipaddress == nil)
@clientipaddress = request.env["HTTP_X_FORWARDED_FOR"]
end
if (@clientipaddress == nil)
@clientipaddress = request.env["REMOTE_ADDR"]
end
if (@clientipaddress != nil)
comma = @clientipaddress.index(",")
if (comma != nil && comma >= 0)
@clientipaddress = @clientipaddress[0, comma]
end
end
It took care of all the possible ways that the IP might show up. For instance, on my local development machine, there is no proxy. But in QA and Production the proxies are there, and sometimes they provide more than one address.
I don't need to know the Groovy syntax, just which methods get me the equivalent of the three different ways I ask for the IP above.
I think this should be what you want:
request.getRemoteAddr()
request.getHeader("X-Forwarded-For")
request.getHeader("Client-IP")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With