String IP   = request.getRemoteAddr();
<%="IP-> "+ IP%>
这个老是显示都是ipv6的地址:0:0:0:0:0:0:0:1
不知道怎么转换。。

解决方案 »

  1.   

    应该是你本机配置IP的时候,用的就是IPV6吧~
      

  2.   

    ipv4的地址是32位二进制,用4组十进制表示。
    ipv6的地址是128位二进制,用8组16进制数表示。ipv4转换成ipv6直接将二进制写成16进制,前面补零,同理ipv6转ipv4将16进制转为10进制就好,但ipv6范围比ipv4要大有可能转出来会多出几组数字的情况
      

  3.   

    一个简单例子
    192.168.1.1
    ipv4二进制表示11000000101010000000000100000001
    ipv6二进制前面补零变成0....11000000101010000000000100000001按八位拆分然后转成十六进制前面都是0所以就是00:00:00:00:C0:A8:01:01
      

  4.   

    纠正一下楼上最后结果应该是0000:0000:0000:0000:0000:FFFF:C0A8:0101这是标准的ipv4兼容写法
      

  5.   

    可以自己封装一个转换类的
    ipv6 到ipv4的如何转换楼上已经说明了