问题描述
javaweb项目中获取客户端IP然后转成int类型出现以下错误
String reqIP=request.getRemoteHost();
int ip=Integer.parseInt(reqIP);
原因分析:
Windows操作系统,开发环境下,在本机上使用http://localhost:8080/…访问本机上的页面,使用tomcat作为服务器在Servlet或者Action中使用request.getRemoteAddr()获取的返回值不是IPv4的格式aaa.bbb.ccc.ddd,而是IPv6的格式x:y:z?️b:cw
解决方案:
解决方案1
C:\Windows\System32\drivers\etc\hosts中
有一行,如下,将localhost映射为了ipv6格式的本机ip地址:
::1 localhost
解决方案1:
在其前面添加一个“#”注释掉
或者改成
127.0.0.1 localhost
解决方案2
访问页面的时候不要用http://localhost:8080/…,使用http://127.0.0.1:8080/…即可