2013-02-13 4 views
6

Auf einem Server unseres privaten Netzwerks haben wir ein HttpServlet, das von einem PC desselben Netzwerks kontaktiert wird.In diesem Fall gibt die Methode getRemoteHost eine IP-Adresse anstelle des Hostnamens zurück?

Wir müssen den Hostnamen des Clients kennen, der den Server kontaktiert. Dazu rufen wir die Methode getRemoteHost von HttpServletRequest auf.

Manchmal gibt diese Methode den PC-Namen des Clients (gesuchtes Verhalten) zurück und einige andere die Methode gibt die IP-Adresse zurück. (Gleiches Client desselben Server, gleiches privates Netzwerk)

Die API sagt:

java.lang.String getRemoteHost()

Gibt die vollständig qualifizierten Namen des Kunden oder die letzten Proxy, der die Anfrage gesendet hat. Wenn die Engine den Hostnamen nicht auflösen kann oder nicht (um die Leistung zu verbessern), gibt diese Methode die punktierte Zeichenfolge der IP-Adresse zurück. Für HTTP-Servlets, gleich dem Wert der CGI-Variablen REMOTE_HOST

Returns: ein String den vollständig qualifizierten Namen des Kunden enthält

Ich sehe, dass für HTTP-Servlet, das Wert der ist Gleiches der CGI-Variablen REMOTE_HOST. Was heißt das? Ist es Sache des Servers zu entscheiden, ob die Adresse aufgelöst werden soll oder nicht? Gibt es eine Möglichkeit, dieses Verhalten zu erzwingen?

+1

Der Server kennt nur die IP-Adresse, um den Hostnamen zu erhalten, muss er eine umgekehrte Suche durchführen. Sie können dies immer manuell tun, wenn Sie den FQDN abrufen möchten –

Antwort

Verwandte Themen