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. Linux创建SSH信任关系

    Linux服务器创建信任关系可以解决远程执行命令.远程传输文件多次手工输入的麻烦.可以实现环境一键打包备份. 测试环境 SuSE 手工创建 假设服务器A与B间要建立信任关系.用户想从服务器A免密码登录 ...

  2. 把Swift中的String转成NSString ,获取NSString的方法

    1.0 在Swift中的 String 并没有提供什么方法,直接把它自身转变成 Int .Float 等,而在OC中我们就可以这样  "123".integerValue 来获取它 ...

  3. tensorflow pip install 安装指定版本的包并指定安装源(速度会快很多)

    pip install tensorflow-gpu==1.3 pip install tensorflow-gpu==1.4 # pip install 命令行pip install -i http ...

  4. js基础-数组及数据类型

    数组也是引用类型 构造函数创建数组 Object 构造函数类型(所有类型基类)   Array 构造函数类型 求幂运算符 **   2**32-1 数组容量最大 arry.length 如果减小len ...

  5. ADO.Net 数据库增加

    数据库增加数据其实就是把查询语句换成了增加语句,后面执行语句用操作变量点出一个执行方法 cmm.ExecuteNonQuery();//关键语句,执行CommandText,的SQL语句,增删改都用这 ...

  6. WebView 加载网页返回后,jsp界面数据消失(一个斜杆引起来的风波)

    http://ip:port//interface/app/index.jsp 如果不小心就会把,port后面的//两个斜杆给忽略... 当有两个斜杆时,webview仍可以将网页,正常加载.但是数据 ...

  7. MySql数据类型范围

    [MySql数据类型范围] 参考:http://blog.sina.com.cn/s/blog_4f925fc30102edg8.html

  8. python网络编程之进程论

    标签(空格分隔): 进程 什么是进程: 进程:正在进行的一个过程或者说一个任务.而负责执行任务则是cpu; 进程与程序的区别: 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程 注意: 需要强调的 ...

  9. Java 面向切面 AOP

    参考: :http://www.blogjava.net/supercrsky/articles/174368.html AOP: Aspect Oriented Programming 即面向切面编 ...

  10. data属性(The Data Attribute)

    HTML片段 <div id="myDiv" data-custom-attr="My Value"> 巴拉巴拉,lady 嘎嘎 </div& ...