JAVA Web开发过程中,很多场景下需要获取访问终端的IP,对应方法getRemoteAddr。例如调试过程中本地回环ip地址是127.0.0.1,忽然有一天返回

0:0:0:0:0:0:0:1,这个是IPv6地址,是不是会让人蒙圈。当前互联网环境下仍以ipv4为主,大家习惯接受的ipv4地址。

具体原因是因为开发者使用了高版本的操作系统,Win7/Win10等启用了ipv6,大家需要手工禁止,或者通过参数控制。

常用方法

方法1:修改server.xml

    <Connector port="8083" protocol="org.apache.coyote.http11.Http11NioProtocol" address="0.0.0.0"
connectionTimeout="20000"
redirectPort="8443" />

其中address="0.0.0.0"为后添加部分

方法2(没详细验证):  windows

netsh interface teredo set state disabled
netsh interface ipv6 6to4 set state state=disabled undoonstop=disabled
netsh interface ipv6 isatap set state state=disabled netsh interface IPV6 set global randomizeidentifier=disabled
netsh interface IPV6 set privacy state=disable
netsh interface ipv6 6to4 set state state=disabled
netsh interface ipv6 isatap set state state=disabled
netsh interface ipv6 set teredo=disabled

方法3:

在jvm命令行添加以下参数

-Djava.net.preferIPv4Stack=true

linux下禁用ipv6的方法

打开配置文件/etc/sysctl.d/99-sysctl.conf,在下面添加

net.ipv6.conf.all.disable_ipv6 =
net.ipv6.conf.default.disable_ipv6 =
net.ipv6.conf.lo.disable_ipv6 =

执行 sysctl -p  使配置生效

查看是否生效

cat /proc/sys/net/ipv6/conf/all/disable_ipv6

返回结果如果是1表示禁用

jsp获取ip使用request.getRemoteAddr返回0:0:0:0:0:0:0:1的更多相关文章

  1. Java获取IP地址:request.getRemoteAddr()注意

        在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr() ,这种方法在大部分情况下都是有效的.但是在通过了Apache,Squid等反向代理软件就不能获取到客户 ...

  2. .net获取IP和MAC地址

    获取IP  解决request.UserHostAddress取不到真实IP private string GetClientIP()   {    string result = HttpConte ...

  3. ASP.NET获取IP的6种方法

    服务端: //方法一 HttpContext.Current.Request.UserHostAddress; //方法二 HttpContext.Current.Request.ServerVari ...

  4. 利用Java获取ip地址

    方法1 public static String getIp2(HttpServletRequest request) { String ip = request.getHeader("X- ...

  5. get_client_ip() 获取IP地址

    get_client_ip()获取ip地址,在开启IPv6协议的主机上会全部返回0.0.0.0原因是他会把ipv6地址认为是非法地址而转换成0.0.0.0,而ipv4地址在ipv6主机上用get_cl ...

  6. C#获取IP和主机名

    System.Net.IPAddress addr; //获取IP addr = new System.Net.IPAddress ( Dns.GetHostByName ( Dns.GetHostN ...

  7. django获取ip与数据重复性判定

    获取ip if request.META.has_key('HTTP_X_FORWARDED_FOR'): ip_c = request.META['HTTP_X_FORWARDED_FOR'] el ...

  8. 解决request.getRemoteAddr()获取的值为0:0:0:0:0:0:0:1这个小问题

    症状: Windows操作系统,eclipse开发环境下,在本机上使用http://localhost:8080/...访问本机上的页面,使用tomcat作为服务器 在Servlet或者Action中 ...

  9. request.getRemoteAddr() 获取的值为0:0:0:0:0:0:0:1的原因及解决办法

    问题: 在近期开发的javaweb项目中,需要记录登录时的电脑ip地址和主机名,通过request.getRemoteAddr()和request.getRemoteHost()得到的值都是0:0:0 ...

随机推荐

  1. Hibernate 再接触 继承映射

    用一张 每一个类一张表 建立外键 第一种 一张总表 Person package com.bjsxt.hibernate; import javax.persistence.Discriminator ...

  2. js判断json对象中是否含有某个属性

    obj.hasOwnProperty("key"); 原地址:https://blog.csdn.net/feicongcong/article/details/53463872

  3. vue 巧妙的运用sass px 转 rem

    <template> <div id="app"> <!-- <img src="./assets/logo.png"> ...

  4. vue -- 九宫格抽奖

    html: <div class="line_item" :class="index == 1 ? 'active' : 'white_item'"> ...

  5. maintenance

    Maintenance Primitives Operator经常需要在包含Mesos集群的机器上执行维护任务. 大多数Mesos升级可以在不影响运行的任务的情况下完成,但是有些情况下维护可能会影响正 ...

  6. 04_web基础(八)之车票实现增删改查初级版本

    43.web页面显示车票列表简略完成 代码: 控制层代码 package com.day03.station.controller; import com.day03.station.model.Ti ...

  7. 学习笔记001之[Android开发视频教学].01_06_Android当中的常见控件

    文本框,按钮 菜单按钮(需复写两个方法) 后续需完成联系代码.

  8. metasploit framework(二):记一次入侵

    msfconsole use 其中一个 exploit前台执行注入 后台执行shell 加-j 通过sessions查看后台执行的shell,可以看到这个会话的id号为2 进入会话,sessions ...

  9. OpenSessionInViewFilter 的配置及作用(原文地址: http://blog.csdn.net/sunsea08/article/details/4545186)

    spring为我们解决hibernate的Session的关闭与开启问题. Hibernate 允许对关联对象.属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Sessio ...

  10. leetcode 字符串类型题

    1,Vaild Palindrome bool isPalindrome(string& s) { transform(s.begin(), s.end(), s.begin(), tolow ...