servlet 获取ip和mac

ublic class CheckMACandIP extends HttpServlet {
 public CheckMACandIP() {
  super();
 }
 public void destroy() {
  super.destroy(); 
 }
 public void doGet(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  doPost(request,response);
 }
 public void doPost(HttpServletRequest request, HttpServletResponse response)
   throws ServletException, IOException {
  String ip = getRemoteAddress(request);
  System.out.println(ip);
  System.out.println(getMACAddress(ip));
 }
 public void init() throws ServletException {
 }
 public String getRemoteAddress(HttpServletRequest request){    
     String ip = request.getHeader("x-forwarded-for");    
     if(ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) ip = request.getHeader("Proxy-Client-IP");    
     if(ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) ip = request.getHeader("WL-Proxy-Client-IP");    
     if(ip == null || ip.length() == 0 || ip.equalsIgnoreCase("unknown")) ip = request.getRemoteAddr();    
     return ip;    
 } 
   public String getMACAddress(String ip){
         String str = "";
         String macAddress = "";
         try {
             Process p = Runtime.getRuntime().exec("nbtstat -A " + ip);
             InputStreamReader ir = new InputStreamReader(p.getInputStream());
             LineNumberReader input = new LineNumberReader(ir);
             for (int i = 1; i < 100; i++) {
                 str = input.readLine();
                 if (str != null) {
                     if (str.indexOf("MAC Address") > 1) {
                         macAddress = str.substring(str.indexOf("MAC Address") + 14, str.length());
                         break;
                     }
                 }
             }
         } catch (IOException e) {
             e.printStackTrace(System.out);
         }
         return macAddress;
     }
}
 

你可能感兴趣的:(servlet)