前段时间在我做一项目是遇到这样一个问题,Server要获取客户端IP,直接在Server上获取不到客户端真实IP,要解决这一问题,本人在网上查了一翻,有好多说了好多的方法,但是我试了不知怎么都不成功,所以本人就用了这样一套方法。就是用其他可以获取到IP的Server代替解决,
1、在代替Server上放一个获取IP的文件,如叫getIP.jsp
内容如下:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%
String ip="";
ip = request.getHeader("x-forwarded-for");
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getHeader("WL-Proxy-Client-IP");
}
if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
ip = request.getRemoteAddr();
}
%>
window.getIp= function (){
return("<%=ip%>");
}
2、在本地Server上只须获得这个js方法的返回值,然后再用ajax传递到需要处理该值的地方即可。
内容如下:
<script language="javascript" src="http://192.168.0.4/getIP.jsp"></script>
<script type="text/javascript">
var strIp;
strIp=window.getIp();
checkUser(strIp);
var xmlHttp;
function createXMLHttpRequest()
{
if(window.ActiveXObject) //IE
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest) //Other Explorers
{
xmlHttp=new XMLHttpRequest();
}
}
function checkUser(strIp)
{
createXMLHttpRequest();
xmlHttp.open("post","save.jsp?getIp="+strIp+",true);
xmlHttp.send();
}
</script>
测试输出
save.jsp:
<%@ page language="java" contentType="text/html; charset=GBK" pageEncoding="GBK"%>
<%
String ip="";
ip=getParameter("getIp");
System.out.println("您的IP是:"+ip);
%>
分享到:
相关推荐
### 搭建AutoCAD License服务器与客户端安装详解 #### 一、概述 AutoCAD作为一款广泛应用于工程设计领域的专业绘图软件,其强大的功能离不开有效的授权管理。本文旨在详细介绍如何搭建AutoCAD License服务器以及...
有中间服务器进行中转的方式,有采用绑定域名的方式(如绑定花生壳软件),有借用中间服务器保存服务器IP地址的方式等。各种不同的方式都各有优劣,这边我们提供一种节约成本、易扩展并且开发容易的解决方案。 具体...
已经分配的 IP 地址必须定时地延长借用期,这个延期的过程称作leasing,确保了当客户机设备在正常地释放 IP 地址之前突然从网络断开时被分配的地址可以归还给服务器。 在 Linux 中,可以使用 Redhat Linux 9.0 自身...
网络位置则包括内网IP及端口、外网IP及端口,是资源访问的关键,同时规定了内外网的访问策略。资源访问方法应详细描述如何安全地访问服务器。 审批流程中,部门负责人和信息化部的签字及部门盖章确保了申请的合法性...
ASP运行在Web服务器上,当用户请求网页时,服务器会解析ASP文件并执行其中的脚本,然后将结果返回给客户端。这种技术的优点在于可以方便地结合HTML、VBScript或JScript等语言,实现动态网页的生成。 物品借用管理...
根据提供的信息,标题、描述和标签均指向一个文件名“笔记本借用登记表.pdf”。这个文件似乎是一个与IT设备管理相关的文档,用于记录笔记本电脑的借用情况。尽管没有提供完整的表格内容,但我们可以从这个标题推断出...
IP指的是互联网协议,该手册讨论了如何配置IP地址,例如接口借用IP地址,这是网络中常见的操作,允许设备在同一网络中有多个IP地址。 IPV6是IP的下一个版本,用于解决IP地址耗尽的问题,并引入了一些新的特性。手册...
子网划分的原理是通过借用IP地址的一部分主机位作为新的网络位,从而创建更多的子网。这种做法可以解决大型网络中IP地址浪费的问题,使得网络管理员能够更精细化地控制网络中的设备。例如,一个C类网络默认有24位...
【简单物品借用管理系统】是一个基于ASP(Active Server Pages)技术和Access数据库的应用程序,主要用于实现对物品借用流程的简便管理。ASP是一种服务器端脚本环境,它允许开发人员使用HTML、VBScript或JScript等...
客户端界面设计简洁直观,提供教室查询、借用申请、借用记录查看等功能。 2. 后端服务器:通常采用Apache HTTP服务器作为基础,处理客户端的请求,进行数据交互,实现教室资源的管理与更新。 3. 数据库:存储教室...
【VB 实验:构建教室借用管理系统】 VB,全称Visual Basic,是Microsoft公司推出的一种基于事件驱动的编程语言,尤其适合初学者和快速开发小型应用系统。在这个“教室借用软件 VB”的项目中,我们将深入探讨如何...
通过借用IP地址的一部分作为子网掩码,可以创建多个子网。例如,一个24位(/24)子网掩码将从一个C类地址(255.255.255.0)中创建254个可用主机地址。 2. **CIDR(Classless Inter-Domain Routing)记法**:由于...
2. Servlet:在需要更复杂的控制逻辑时,可使用Servlet,它是Java Web应用程序的主要后端组件,负责接收和响应客户端请求。 3. JDBC:Java Database Connectivity,用于连接数据库,执行SQL语句,进行数据操作。在...
这类工具通常支持多种数据库类型,包括MySQL、SQL Server、Oracle和SQLite等,无需在本地安装这些数据库服务器,只需安装客户端软件即可进行连接。 1. **MySQL**:MySQL是一款流行的开源关系型数据库管理系统,广泛...
当社团或部门举行活动或摆摊宣传的时候,需要桌子、帐篷等物资,这时就需要物资借用负责人向各学院办公室提出请求,借用物资。而学生们往往通过打电话、发短信等形式向学院办公室借用,办公室负责人需确认数量、时间...
1. **Servlet**: Servlet是Java EE(Enterprise Edition)的一部分,主要用于扩展服务器的功能,处理来自客户端(如浏览器)的请求。在本系统中,Servlet负责接收HTTP请求,执行业务逻辑,并将结果返回给客户端。...
5. **网络通信**: 系统可能需要连接到服务器以获取实时的教室占用信息或提交借用请求。这就需要用到HTTP/HTTPS请求,可能结合使用Android的HttpURLConnection、OkHttp或Retrofit等库。 6. **权限管理**: 为了访问...
如题2所示,子网IP为10.32.0.0,子网掩码为255.224.0.0,即借用9位作为子网位,允许的最大主机数为2^9-2=510,但题目只给出了最大主机地址,即10.63.255.254。 4. **子网聚合(CIDR)**: 子网聚合,也称为无类别...