首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

Servlet获取客户端ip地址跟mac地址

2012-12-19 
Servlet获取客户端ip地址和mac地址package com.babyDuncan.javaimport java.io.IOExceptionimport java.

Servlet获取客户端ip地址和mac地址

package com.babyDuncan.java;import java.io.IOException;import java.io.InputStreamReader;import java.io.LineNumberReader;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ipServlet extends HttpServlet {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));response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">");out.println("<HTML>");out.println("  <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println("  <BODY>");out.print("    This is ");out.print(this.getClass());out.println(", using the POST method");out.println("  </BODY>");out.println("</HTML>");out.flush();out.close();}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;}}

访问地址:
http://hanvon-babydunc:8080/testServlet/servlet/ipServlet
运行结果:
192.168.10.18
00-26-C7-21-65-46

热点排行