8/3/13

Country Restriction, Java

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
 

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>
}


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

No comments:

Post a Comment

Popular Posts