para servlet se puede usar el getRemoteAddr() y getRemoteHost() para obtener la dirección IP y el host de la máquina del cliente

public String ServletRequest.getRemoteAddr()
public String ServletRequest.getRemoteHost()

import java.util.*;
import java.io.*;
import javax.servlet.http.*;
import javax.servlet.*;

public class pruebaH extends HttpServlet{

public void doGet(HttpServletRequest req,HttpServletResponse res)
throws ServletException,IOException{

res.setContentType(“text/plain”);
PrintWriter pw= res.getWriter();

//Obtenemos el host del cliente
String h = req.getRemoteHost();

if(!accesoHost(h)){
pw.println(“Access Acceso denegado”);
} else{
pw.println(“acceso libre”);
}
}
private boolean accesoHost(String host) {
return(host.endsWith(“.com”))||
(host.indexOf(‘.’)==-1);/
}
}