There are scenario's where we don't want our application to be accessed from differnt zone or differnt country apart from where we have installed. I came across a following sample in the internet which does that,
locationservlet.java
Please refer the following website for php code sample, it is self explanatory .
http://www.coderewind.com/article/find-a-visitors-ip-address-with-country-and-flag-in-php/
http://phpweby.com/software/ip2country
For .net :
http://aspboss.blogspot.in/2010/05/how-to-get-visitors-countrylongitudelat.html
locationservlet.java
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.InetAddress;
import javaQuery.j2ee.GeoLocation;
/**
*
* @author defender
*/
public class locationservlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
/* TODO output your page here
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet locationservlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet locationservlet at " + request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");
*/
request.getHeader("VIA");
String ipAddress = request.getHeader("X-FORWARDED-FOR");
System.out.println("request.getHeader(X-FORWARDED-FOR)----" + request.getHeader("X-FORWARDED-FOR"));
System.out.println("request" + request.getRemoteAddr());
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
System.out.println("ipAddress---->" + ipAddress);
InetAddress thisIP = InetAddress.getByName(ipAddress);
GeoLocation gl = new GeoLocation();
GeoLocation gl1 = new GeoLocation();
gl.GetGeoLocationByIP(request.getRemoteAddr());
System.out.println("coun------>" + gl.Country);
gl1.GetGeoLocation(thisIP);
String country = gl.Country;
String country1 = gl1.Country;
System.out.println("country----------------" + country);
System.out.println("country1----------------" + country1);
out.println("country--->" + country);
out.println("country 1--->" + country1);
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.net.InetAddress;
import javaQuery.j2ee.GeoLocation;
/**
*
* @author defender
*/
public class locationservlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
/* TODO output your page here
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet locationservlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet locationservlet at " + request.getContextPath () + "</h1>");
out.println("</body>");
out.println("</html>");
*/
request.getHeader("VIA");
String ipAddress = request.getHeader("X-FORWARDED-FOR");
System.out.println("request.getHeader(X-FORWARDED-FOR)----" + request.getHeader("X-FORWARDED-FOR"));
System.out.println("request" + request.getRemoteAddr());
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
System.out.println("ipAddress---->" + ipAddress);
InetAddress thisIP = InetAddress.getByName(ipAddress);
GeoLocation gl = new GeoLocation();
GeoLocation gl1 = new GeoLocation();
gl.GetGeoLocationByIP(request.getRemoteAddr());
System.out.println("coun------>" + gl.Country);
gl1.GetGeoLocation(thisIP);
String country = gl.Country;
String country1 = gl1.Country;
System.out.println("country----------------" + country);
System.out.println("country1----------------" + country1);
out.println("country--->" + country);
out.println("country 1--->" + country1);
} finally {
out.close();
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
}
/**
* Returns a short description of the servlet.
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}
http://www.coderewind.com/article/find-a-visitors-ip-address-with-country-and-flag-in-php/
http://phpweby.com/software/ip2country
For .net :
http://aspboss.blogspot.in/2010/05/how-to-get-visitors-countrylongitudelat.html
No comments:
Post a Comment