这几天调试别人写好的代码,在获取ip地址时总是获取不到本地真实的ip地址,需要注意的几点如下:
1.java代码如下:
ActionContext actionContext = invocation.getInvocationContext();HttpServletRequest request = (HttpServletRequest) actionContext.get(ServletActionContext.HTTP_REQUEST);HttpServletResponse response = (HttpServletResponse) actionContext.get(ServletActionContext.HTTP_RESPONSE);String ip = request.getRemoteAddr();String method = request.getMethod();String contentType = request.getContentType();String characterEncoding = request.getCharacterEncoding();
2.前台ajax代码如下:
3.jsp测试代码:
4.设置本地固定ip地址:
这里可以去百度具体做法。。。(注意:其中首选DNS服务器和备用的DNS服务器不能相同,备用的可以随便输入)
(PS:作者不会上次图片)
5.修改本地的hosts文件
路径为:C:\Windows\System32\drivers\etc\hosts
直接打开这个文件是不用修改的,需要用管理员身份运行。
# localhost name resolution is handled within DNS itself. 127.0.0.1 localhost# ::1 localhost
确保为以上代码 注释掉 # ::1 localhost
# ::1 localhost
(记事本 右键 “更多”--》“以管理员身份运行”,“文件”--》“打开”--》选择hosts文件的路径,打开之后,ctrl+s保存)
6. 确保以上都一切具备之后下面开始测试:
启动本地tomcat,访问项目:
(1)输入url 为:(
获取的ip地址为: "ip" 0:0:0:0:0:0:0:1
PS:其实这是正常的,接着往下看
(2)输入url为:(
获取的ip地址为: "ip" 127.0.0.1
PS:这也是正常的
(3)找另一台机器 输入url: (
这是我自己机器的IP地址。
别人访问后,可以获取到别人的真实IP地址。
ok测试完成!
7.我自己觉得只能通过别人才能访问才能知道有没有获取IP地址成功!
本人菜鸟一个,有错误的地方,希望大家指出来,共同学习!