如何取得有效的客户端的IP和Mac地址?

junglesong 2011-07-19 10:59:04
如果用Java从Request里面去取,如果有代理的话,取出来都失真了。

如果用JavaScript取,那么会有控件限制的问题,请问大家是怎么解决这个问题的?
...全文
171 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
shine333 2011-07-19
  • 打赏
  • 举报
回复
request,没代理的话,你也取不到mac的

5F的例子有很大的局限性。总之,客户端不主动发送的话,通过http(或者ftp等常见应用协议)你无法获取相关信息

话说lz不是10年18k嘛
飞跃颠峰 2011-07-19
  • 打赏
  • 举报
回复
http://training.tsinghua.edu.cn/html/jishuyuandi/2009/0302/48.html
dragonsky_w 2011-07-19
  • 打赏
  • 举报
回复
我以前用的是java获取客户端IP记录日志,但是没有记录Mac地址,所以我这里就只贴出获取客户端IP的方法。代码如下:

String 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();
}


希望对你有帮助……
zn85600301 2011-07-19
  • 打赏
  • 举报
回复
我记得有个帖子说过 代理的真实ip取法 你在csdn上搜搜

js 取不太现实 被屏蔽的可能性很大
csdn_aspnet 2011-07-19
  • 打赏
  • 举报
回复
给你个地址:http://hi.baidu.com/yuxinglian/blog/item/2a657acedb92f130b600c8bf.html

看看能不能帮你。
csdn_aspnet 2011-07-19
  • 打赏
  • 举报
回复
public String getIpAddr() {
String ipAddress = null;
ipAddress = request.getRemoteAddr();
ipAddress = request.getHeader("x-forwarded-for");
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader("WL-Proxy-Client-IP");
}
if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
}

//对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
if(ipAddress!=null && ipAddress.length()>15){ //"***.***.***.***".length() = 15
if(ipAddress.indexOf(",")>0){
ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
}
}
return ipAddress;
}

javamyself 2011-07-19
  • 打赏
  • 举报
回复
占楼求分
朱超ZhuChao.Tech 2011-07-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 shine333 的回复:]
request,没代理的话,你也取不到mac的

5F的例子有很大的局限性。总之,客户端不主动发送的话,通过http(或者ftp等常见应用协议)你无法获取相关信息

话说lz不是10年18k嘛
[/Quote]

10年18k 很多吗?
TheSadLove 2011-07-19
  • 打赏
  • 举报
回复
lz其实不需要在这里问的,上baidu、google我看已经够了。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧