Wie kommst du auf Client-IP-Adresse in einem Grails-controller?
Hatte ich code wie diesen 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
Er kümmerte sich um all die Möglichkeiten, die IP kann. Zum Beispiel, auf meinem lokalen Entwicklungsrechner, es ist kein proxy. Aber in QA und Produktion Proxys, die dort sind, und manchmal bieten Sie mehr als eine Adresse.
Brauche ich nicht zu wissen, die Groovy-syntax, nur die Methoden get mich das äquivalent zu den drei verschiedenen Möglichkeiten, die ich darum bitten, die IP oben.
InformationsquelleAutor Andrew | 2010-01-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich denke, das sollte das sein, was Sie wollen:
request.getRemoteAddr()
request.getHeader("X-Forwarded-For")
request.getHeader("Client-IP")
Ich habe versucht, bekomme aber: "Keine Eigenschaft: Anforderung" ausgegeben haben 1h googlin dieser Fehler, kein Glück. Weiss jemand wie man dieses Problem beheben?
machst du das in der Steuerung? Dies ist eine eingefügte Eigenschaft und sollte dort sein.
Vom proxy-server, X-Forwarded-For wird, geben Sie den richtigen Wert.
InformationsquelleAutor Michael Borgwardt
Ergebnis ---ip-Anfrage 0:0:0:0:0:0:0:1
InformationsquelleAutor Teejay