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地址在使用Apache Axis发布Web服务时是一个重要但可能复杂的过程,需要结合使用Servlet API和理解网络架构来正确处理。提供的库文件是实现这一功能的基础,确保了服务与客户端之间的通信和...
在Servlet中,我们通常使用`HttpServletRequest`对象来获取请求的相关信息,包括客户端的IP地址。以下是如何实现这一功能的代码示例: ```java import javax.servlet.http.HttpServletRequest; import javax....
在IT行业中,获取客户端IP地址是一项基础且重要的任务,尤其对于服务器端的开发人员来说。客户端IP地址可以提供关于用户位置、网络环境等关键信息,有助于实现如访问控制、数据分析和安全防护等功能。本文将详细讲解...
Java根据Request获取客户端IP是指在Java Web开发中获取客户端的IP地址,以便进行相应的处理和分析。在JSP中,获取客户端IP地址的方法是使用request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是,如果...
在客户端和服务器之间可能存在多个代理服务器的情况下,直接获取的IP地址可能是代理服务器的地址,而非客户端的实际IP地址。因此,需要利用HTTP请求头中的其他信息来追踪真实的客户端IP地址。 常见的HTTP请求头字段...
【客户端IP地址控制】 通过Filter控制客户端IP访问是一种常见的安全措施。以下是一个简单的示例,展示了如何创建一个只允许特定IP访问的Filter: ```java public class IpFilter implements Filter { private ...
在Java编程中,获取客户端IP地址以及其归属地是一项常见的需求,这主要涉及到网络协议的理解以及第三方库的使用。在Web应用中,服务器通常需要识别来访用户的地理位置信息,以便进行个性化服务、安全控制或者数据...
当我们构建一个基于Servlet的Web应用程序时,有时需要获取访问用户的真实IP地址,这在处理用户请求、日志记录或者实现地理位置相关的功能时尤为关键。 Servlet是Java服务器端的一种组件,它扩展了Web服务器的功能,...
在Web开发过程中,经常需要获取客户端的各种信息,例如操作系统类型、浏览器版本、IP地址等。这些信息对于进行用户行为分析、日志记录、安全验证等非常有用。Java作为一种广泛应用于服务器端开发的语言,提供了多种...
java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去,...
本文将详细介绍如何通过Java Servlet获取客户端的IP地址和访问URL,并提供相应的简单代码示例。 首先,我们要理解Servlet接口中的`HttpServletRequest`对象。这个对象是Servlet容器(如Tomcat、Jetty)在请求到达...
java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去...
java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去,...
java webService servlet发送邮件 servlet获取客户端真实IP,城市,国家 上传文件 连接数据转换xml 等等!全套一字母不差源码,下载直接部署就可以用 , tomcat5.5 MyEclipse 分包下载 共4个包,太大一个包传不上去,...
在IT行业中,网络编程是不可或缺的一部分,而获取客户端IP地址是一项基本操作。在这个"获取客户的ip小例子"中,我们将探讨如何使用Java语言来实现这一功能。Java提供了多种方法来获取HTTP请求中的客户端IP地址,这在...
获取客户端的MAC地址在某些场景下可能是必要的,但必须注意隐私和安全问题。以上介绍的三种方法各有优劣,开发者应根据具体的应用场景和需求选择最合适的方法。同时,随着技术的发展,未来的趋势可能更倾向于采用...
在获取和处理客户端IP地址时,还需要考虑到安全性和隐私保护的问题。例如,避免泄露敏感信息、确保数据加密传输等。此外,在某些国家和地区,收集和使用个人数据(包括IP地址)可能受到严格的法律监管,开发者需要...
- `request.getRemoteAddr()`:获取客户端IP地址。 - `request.getRemoteHost()`:获取客户端主机名(如果不可用,则返回IP地址)。 - `request.getProtocol()`:获取协议名称和版本。 #### 五、最佳实践与注意事项...
在Java Web开发中,Servlet是一种Java编程语言编写的服务器端程序,主要功能是接收和响应来自客户端(通常是浏览器)的请求。在这个主题“十分全的servlet获取表单数据”中,我们将深入探讨如何利用Servlet来处理...