导航:首页 > 编程语言 > jsp获取当前ip

jsp获取当前ip

发布时间:2023-10-12 19:30:35

java servlet获取客户端IP

jsP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的内。但是在通容过了 Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。如果使用了反向代理软件,用 request.getRemoteAddr()方法获取的IP地址是:127.0.0.1或 192.168.1.110,而并不是客户端的真实IP。

request.getRemoteAddr()的方法获取的IP实际上是代理服务器的地址,并不是客户端的IP地址。

于是可得出获得客户端真实IP地址的方法一:

public String getRemortIP(HttpServletRequest request) {

if (request.getHeader("x-forwarded-for") == null) {

return request.getRemoteAddr();

}

return request.getHeader("x-forwarded-for");

}

你可以写一个Filter配置在web.xml中 让服务器启动的时候就开始监听 直到服务器停止!

㈡ 怎样用JAVA程序获取本机ip

import java.net.InetAddress;
import java.net.UnknownHostException;

public class Test
{
public static void main(String[] args) throws UnknownHostException
{
InetAddress inet = InetAddress.getLocalHost();
System.out.println("本机的ip=" + inet.getHostAddress());

}
}

㈢ jsp中怎么获得服务器ip和服务端口,在线等

/** *构造函数. */ privateInternetProtocol(){ } /** *获取客户端IP地址.<br> *支持多级反向代理 * *@paramrequest *HttpServletRequest *@return客户端真实IP地址 */ (){ try{ StringremoteAddr=request.getHeader("X-Forwarded-For"); //如果通过多级反向代理,X-Forwarded-For的值不止一个,而是一串用逗号分隔的IP值,此时取X-Forwarded-For中第一个非unknown的有效IP字符串 if(isEffective(remoteAddr)&&(remoteAddr.indexOf(",")>-1)){ String[]array=remoteAddr.split(","); for(Stringelement:array){ if(isEffective(element)){ remoteAddr=element; break; } } } if(!isEffective(remoteAddr)){ remoteAddr=request.getHeader("X-Real-IP"); } if(!isEffective(remoteAddr)){ remoteAddr=request.getRemoteAddr(); } returnremoteAddr; }catch(Exceptione){ log.error("getromoteiperror,errormessage:"+e.getMessage()); return""; } } /** *获取客户端源端口 *@paramrequest *@return */ publicstaticLonggetRemotePort(){ try{ Stringport=request.getHeader("remote-port"); if(StringUtil.isNotEmptyString(port)){ try{ returnLong.parseLong(port); }catch(NumberFormatExceptionex){ log.error("convertporttolongerror,port: "+port); return0l; } }else{ return0l; } }catch(Exceptione){ log.error("getromoteporterror,errormessage:"+e.getMessage()); return0l; } }

㈣ java获得IP地址

下面有一篇文章,介绍若何读取物理网卡的地址 ,同样的
你可以用这个方法读取你所需要的本机IP地址

=======================================================
J2SE5.0新特性之ProcessBuilder
这个例子使用了J2SE5.0的ProcessBuilder类执行外部的程序,相对于 Runtime.exec ,它更方便,可以设置环境变量等。这里使用它在windows下读取物理网卡的地址

package com.kuaff.jdk5package;

import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;

public class ProcessBuilderShow
{
public static List getPhysicalAddress()
{
Process p = null;
//物理网卡列表
List address = new ArrayList();

try
{
//执行ipconfig /all命令
p = new ProcessBuilder("ipconfig", "/all").start();
}
catch (IOException e)
{
return address;
}
byte[] b = new byte[1024];
StringBuffer sb = new StringBuffer();
//读取进程输出值
InputStream in = p.getInputStream();
try
{
while (in.read(b)>0)
{
sb.append(new String(b));
}
}
catch (IOException e1)
{
}
finally
{
try
{
in.close();
}
catch (IOException e2)
{
}
}
//以下分析输出值,得到物理网卡
String rtValue = sb.substring(0);
int i = rtValue.indexOf("Physical Address. . . . . . . . . :");
while(i>0)
{
rtValue = rtValue.substring(i + "Physical Address. . . . . . . . . :".length());
address.add(rtValue.substring(0,18));
i = rtValue.indexOf("Physical Address. . . . . . . . . :");
}
return address;
}
public static void main(String[] args)
{
List address = ProcessBuilderShow.getPhysicalAddress();
for(String add:address)
{
System.out.printf("物理网卡地址:%s%n", add);
}
}
}

㈤ jsp中如何获取本机ip

<%=
request.getLocalAddr()
%>
//服务器IP地址
<%=
request.getRemoteAddr()
%>
//远程
访问机器的IP地址
的确很好用!~~

阅读全文

与jsp获取当前ip相关的资料

热点内容
2017程序员工资统计 浏览:153
ps2021暂存盘文件手动清理 浏览:459
fdt表中的长文件名 浏览:508
mysql管理员默认密码 浏览:359
越狱ios8直接删系统文件 浏览:490
文件柜的倾斜度是多少 浏览:115
苹果耳机切换不了 浏览:968
有什么小说网站可以看所有小说 浏览:661
苹果云盘文件怎么存在 浏览:466
红米手机里面的txt文件 浏览:360
华为pad摄像头在哪个文件夹 浏览:147
手机版编程猫如何复制角色 浏览:599
动漫图片的文件格式 浏览:560
黑衣紧身美女跳小苹果 浏览:670
无法收缩数据库 浏览:216
java中获取二维数组的长度 浏览:510
手机里面的数据线怎么接 浏览:491
微信转帐是红包吗 浏览:748
如何学会函数编程 浏览:985
js赋值高度 浏览:940

友情链接