servlet
Get client’s address and hostname in Servlet
In this example we are going to see how to get client’s address and hostname in a Servlet. Java offers a very convenient way to handle client and server information such as hostname ip address etc.
Getting a client’s address and hostname requires that you:
- Get clients ip adfress using
HttpServletRequest.getRemoteAddr()
. - Get clients hostname using
HttpServletRequest.getRemoteHost()
.
Take a look at the code snippets that follow:
package com.javacodegeeks.snippets.enterprise; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class GetClientAddressAndHostnameInServlet extends HttpServlet { private static final long serialVersionUID = -2128122335811219481L; public void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException { PrintWriter out = res.getWriter(); res.setContentType("text/plain"); // client's IP address String remoteAddr = req.getRemoteAddr(); // client's hostname String remoteHost = req.getRemoteHost(); out.write("remoteAddr = "); out.write(remoteAddr); out.write("n"); out.write("remoteHost = "); out.write(remoteHost); out.close(); } }
web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <display-name>JCG Snippets Web Project</display-name> <servlet> <servlet-name>JCG Snippets Application</servlet-name> <servlet-class>com.javacodegeeks.snippets.enterprise.GetClientAddressAndHostnameInServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>JCG Snippets Application</servlet-name> <url-pattern>/jcgservlet</url-pattern> </servlet-mapping> </web-app>
URL:
http://myhost:8080/jcgsnippets/jcgservlet
Output:
remoteAddr = 127.0.0.1 remoteHost = mypc
This is an example on how to get client’s address and hostname in a Servlet.