这几天调试别人写好的代码,在获取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地址成功!


本人菜鸟一个,有错误的地方,希望大家指出来,共同学习!