1、
request.getRemoteUser();//获取当前缓存的用户,比如Spring Security做权限控制后就会将用户登录名缓存到这里 request.getRemoteAddr();//获取客户端IP,需要注意的是获取到的是直接面向的IP地址,并不是经过代理等处理的原始地址

request.getRemotePort();//获取服务端访问端口

request.getRemoteHost();//获取服务端地址

即当前路径为 request.getRemoteHost()+”:”+request.getRemotePort();
2、getRemoteAddr()与 getRemoteHost()的区别小结

getRemoteAddr():获得客户端的IP地址
getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址

InetAddress ia = InetAddress.getLocalHost();

String iad = ia.getHostAddress();//主机IP
String ias = ia.getHostName();//主机名

请问我在JSP页面中使用如下语句:
System.out.println(“request.getRemoteAddr(): “ + request.getRemoteAddr());
System.out.println(“request.getRemoteHost(): “ + request.getRemoteHost());
得到的结果相同(局域网内试验的结果)。
那么getRemoteAddr()和getRemoteHost()到底有什么区别?

前一个是获得客户端的ip地址
后一个是获得客户端的主机名
所以用前一个。

使用request.getRemoteAddr()取得client的ip有問題

request.getRemoteAddr()可以取得用戶端ip ,但我試了的結果是 0:0:0:0:0:0:0:1 ,請問是哪裡出了問題,要如何解決呢?謝謝各位回答。

这可能是由于你并没有连入互联网或局域网没有获得ip,也有可能是你的上网的方式有问题,我也曾经出过这样的问题,不过换到公司使用局域网测试ip就显示出来了

在servlet中怎样能取到真实的客户端ip地址?
如果客户端来自服务器以外的网段,request.getRemoteAddr得到的只是那个客户端网关(代理)的ip,没有办法取到真实的客户端ip吗?

当用户使用代理或者是局域网访问你的应用程序,你用request.getRemoteAddr()方法返回的是代理的地址或是局域网网关的地址.
request.getRemoteAddr()只能获取第一层,如果获取的地址是内网地址,可能是路由器中转了

参考博客:https://www.jb51.net/article/21498.htm

request获取当前用户的更多相关文章

  1. 使用腾讯开发平台获取QQ用户数据资料

    <今天是七夕:祝大家七夕嗨皮,前可么么哒,后可啪啪啪> Tips:本篇博客将教你如何使用腾讯开发平台获取QQ用户资料 ----------------------------------- ...

  2. Request获取信息总结

    Request.ServerVariables("REMOTE_ADDR")          '获取访问IPRequest.ServerVariables("LOCAL ...

  3. request 获取请求参数

    /** * 根据request获取请求的用户参数 * @return * @return */ protected <T> T getParamConvertEntity(Class cl ...

  4. 微信公众平台开发—利用OAuth2.0获取微信用户基本信息

    在借鉴前两篇获取微信用户基本信息的基础下,本人也总结整理了一些个人笔记:如何通过OAuth2.0获取微信用户信息 1.首先在某微信平台下配置OAuth2.0授权回调页面: 2.通过appid构造url ...

  5. 微信公众号开发之网页中及时获取当前用户Openid及注意事项

    目录 (一)微信公众号开发之VS远程调试 (二)微信公众号开发之基础梳理 (三)微信公众号开发之自动消息回复和自定义菜单 (四)微信公众号开发之网页授权获取用户基本信息 (五)微信公众号开发之网页中及 ...

  6. 小程序获取微信用户的openid

    小程序获取微信用户的openid //index.js //获取应用实例 const app = getApp() Page({ globalData: { appid: '11121221a89e0 ...

  7. 根据Request获取客户端IP

    转自: http://www.cnblogs.com/icerainsoft/p/3584532.html http://www.cnblogs.com/bingya/articles/3134227 ...

  8. spring security+freemarker获取登陆用户的信息

    spring security+freemarker获取登陆用户的信息 目标页面之间获取 ${Session.SPRING_SECURITY_CONTEXT.authentication.princi ...

  9. Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid

    Django商城项目笔记No.12用户部分-QQ登录2获取QQ用户openid 上一步获取QQ登录网址之后,测试登录之后本该跳转到这个界面 但是报错了: 新建oauth_callback.html & ...

随机推荐

  1. linux下tomcat运行war包常用命令

    一.先是war包copy到 linux 的相关目录,我这的是/opt/soft/tomcat_ecp/webapps. 如果是老项目,在导入war的之前,习惯上是把之前的war备份一下, 如 mv p ...

  2. 【BZOJ1069】【SCOI2007】最大土地面积

    题目大意:给定有n个点的点集,求该点集中任意四个点所构成的四边形中面积最大四边形的面积. 我们不难想到(不难yy出来),面积最大的四边形的四个顶点一定所给定的点集所构成的凸包上.我们求出给定点集的集合 ...

  3. Neko and Aki's Prank CodeForces - 1152D (括号序列,dp)

    大意: 将所有长度为2*n的合法括号序列建成一颗trie树, 求trie树上选出一个最大不相交的边集, 输出边集大小. 最大边集数一定不超过奇数层结点数. 这个上界可以通过从底层贪心达到, 所以就转化 ...

  4. (转)MySQL中show语法

    MySQL中show语法 1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. 2. show databases; -- ...

  5. Windows10下简单搭建zookeeper

    转载请注明源出处:http://www.cnblogs.com/lighten/p/6798669.html 1 简介 zookeeper是Apache的一个开源项目,致力于开发和维护一个开源的服务器 ...

  6. 【Java并发编程】:线程中断

    使用interrupt()中断线程 当一个线程运行时,另一个线程可以调用对应的Thread对象的interrupt()方法来中断它,该方法只是在目标线程中设置一个标志,表示它已经被中断,并立即返回.这 ...

  7. python基础笔记之注释三种方法

    ---恢复内容开始--- 1,,单行注释  用# 2,多行注释 用 “”” dddd""" 3,较长行虽然分行写但是只是注释,最终显示为一行:用 \ ---恢复内容结束- ...

  8. 最小化或关闭Outlook2013到系统托盘

    https://community.spiceworks.com/how_to/36214-minimize-and-or-close-outlook-to-taskbar 要注意里面提到的以管理员权 ...

  9. 【树】Construct Binary Tree from Inorder and Postorder Traversal

    题目: Given inorder and postorder traversal of a tree, construct the binary tree. 思路: 后序序列的最后一个元素就是树根, ...

  10. C/C++ -- Gui编程 -- Qt库的使用 -- 信号与槽 -- 欢迎界面

    程序运行先显示一个对话框,确定进入主程序 1.新建Qt工程,类MyWidget,基类QWidget 2.新建设计师界面类MyDialog,基类QDialog 3.-----main.cpp----- ...