这几天调试别人写好的代码,在获取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代码如下:
<script type="text/javascript"> function tiao(){ $.ajax({ type: 'post', url: "v1/myAction/add", contentType: "application/json", data: JSON.stringify(GetJsonData()), async:false, dataType:'json', success: function(data){ console.log(data) }, error:function(data){ console.log("ajax error"); console.log(data); } }); } function GetJsonData() { var json = { "data": [ { "advertName": "advertName1" , "industryId": "1" , "advertUrl": "http://url.com", "companyName": "company1", "mobilePhone": "13800138000" , "email": "advertName1@qq.com" }, { "advertName": "advertName2", "industryId": "2", "advertUrl": "http://url2.com", "companyName": "company2", "mobilePhone": "13800138002", "email": "advertName2@qq.com" } ], "authHeader": { "dspId": "048", "token": "048" } }; return json; }
3.jsp测试代码:
<button οnclick="tiao()">tiao</button>
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 为:(http://localhost:8080/MyPrj/index.jsp)
获取的ip地址为: "ip" 0:0:0:0:0:0:0:1
PS:其实这是正常的,接着往下看
(2)输入url为:(http://127.0.0.1:8080/MyPrj/index.jsp)
获取的ip地址为: "ip" 127.0.0.1
PS:这也是正常的
(3)找另一台机器 输入url: (http://10.0.0.48:8080/MyPrj/index.jsp)
10.0.0.48 这是我自己机器的IP地址。
别人访问后,可以获取到别人的真实IP地址。
ok测试完成!
7.我自己觉得只能通过别人才能访问才能知道有没有获取IP地址成功!
本人菜鸟一个,有错误的地方,希望大家指出来,共同学习!
转载于:https://blog.51cto.com/5006419/1950445