`
BabyDuncan
  • 浏览: 584379 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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
分享到:
评论

相关推荐

    获取客户端IP地址所需Jar包

    总结来说,获取客户端IP地址在使用Apache Axis发布Web服务时是一个重要但可能复杂的过程,需要结合使用Servlet API和理解网络架构来正确处理。提供的库文件是实现这一功能的基础,确保了服务与客户端之间的通信和...

    IP工具类,通过传入的request获取ip地址(JAVA)

    在Servlet中,我们通常使用`HttpServletRequest`对象来获取请求的相关信息,包括客户端的IP地址。以下是如何实现这一功能的代码示例: ```java import javax.servlet.http.HttpServletRequest; import javax....

    获取客户端IP

    在IT行业中,获取客户端IP地址是一项基础且重要的任务,尤其对于服务器端的开发人员来说。客户端IP地址可以提供关于用户位置、网络环境等关键信息,有助于实现如访问控制、数据分析和安全防护等功能。本文将详细讲解...

    Java根据Request获取客户端IP

    Java根据Request获取客户端IP是指在Java Web开发中获取客户端的IP地址,以便进行相应的处理和分析。在JSP中,获取客户端IP地址的方法是使用request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是,如果...

    jsp获取客户端IP地址的方法

    在客户端和服务器之间可能存在多个代理服务器的情况下,直接获取的IP地址可能是代理服务器的地址,而非客户端的实际IP地址。因此,需要利用HTTP请求头中的其他信息来追踪真实的客户端IP地址。 常见的HTTP请求头字段...

    filter过滤器流程及中文乱码解决和客户端IP地址控制

    【客户端IP地址控制】 通过Filter控制客户端IP访问是一种常见的安全措施。以下是一个简单的示例,展示了如何创建一个只允许特定IP访问的Filter: ```java public class IpFilter implements Filter { private ...

    java获取客户端IP及IP归属地

    在Java编程中,获取客户端IP地址以及其归属地是一项常见的需求,这主要涉及到网络协议的理解以及第三方库的使用。在Web应用中,服务器通常需要识别来访用户的地理位置信息,以便进行个性化服务、安全控制或者数据...

    idea,java获取ip地址

    当我们构建一个基于Servlet的Web应用程序时,有时需要获取访问用户的真实IP地址,这在处理用户请求、日志记录或者实现地理位置相关的功能时尤为关键。 Servlet是Java服务器端的一种组件,它扩展了Web服务器的功能,...

    Java获取客户端代码大全

    在Web开发过程中,经常需要获取客户端的各种信息,例如操作系统类型、浏览器版本、IP地址等。这些信息对于进行用户行为分析、日志记录、安全验证等非常有用。Java作为一种广泛应用于服务器端开发的语言,提供了多种...

    WebService发送邮件,获取客户端ip,城市,国家 上传文件 webService发送邮件 全套(包2)

    java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去,...

    java servlet获得客户端相关信息的简单代码

    本文将详细介绍如何通过Java Servlet获取客户端的IP地址和访问URL,并提供相应的简单代码示例。 首先,我们要理解Servlet接口中的`HttpServletRequest`对象。这个对象是Servlet容器(如Tomcat、Jetty)在请求到达...

    WebService发送邮件,获取客户端ip,城市,国家 上传文件 webService发送邮件 全套(包3)

    java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去...

    WebService发送邮件,获取客户端ip,城市,国家 上传文件 webService发送邮件 全套(包1)

    java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去,...

    WebService发送邮件,获取客户端ip,城市,国家 上传文件 webService发送邮件 全套(包4)

    java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去,...

    获取客户的ip小例子

    在IT行业中,网络编程是不可或缺的一部分,而获取客户端IP地址是一项基本操作。在这个"获取客户的ip小例子"中,我们将探讨如何使用Java语言来实现这一功能。Java提供了多种方法来获取HTTP请求中的客户端IP地址,这在...

    Java/JSP获得客户端网卡MAC地址的三种方法解析

    获取客户端的MAC地址在某些场景下可能是必要的,但必须注意隐私和安全问题。以上介绍的三种方法各有优劣,开发者应根据具体的应用场景和需求选择最合适的方法。同时,随着技术的发展,未来的趋势可能更倾向于采用...

    java获取用户真实ip

    在获取和处理客户端IP地址时,还需要考虑到安全性和隐私保护的问题。例如,避免泄露敏感信息、确保数据加密传输等。此外,在某些国家和地区,收集和使用个人数据(包括IP地址)可能受到严格的法律监管,开发者需要...

    JSP获取客户端的浏览器和操作系统信息

    - `request.getRemoteAddr()`:获取客户端IP地址。 - `request.getRemoteHost()`:获取客户端主机名(如果不可用,则返回IP地址)。 - `request.getProtocol()`:获取协议名称和版本。 #### 五、最佳实践与注意事项...

    十分全的servlet获取表单数据

    在Java Web开发中,Servlet是一种Java编程语言编写的服务器端程序,主要功能是接收和响应来自客户端(通常是浏览器)的请求。在这个主题“十分全的servlet获取表单数据”中,我们将深入探讨如何利用Servlet来处理...

Global site tag (gtag.js) - Google Analytics