java web 獲取客戶端實際Ip地址 實例

這幾天調試別人寫好的代碼,在獲取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": "[email protected]" 
                },   
                { 
                        "advertName": "advertName2",
                        "industryId": "2",
                        "advertUrl": "http://url2.com",
                        "companyName": "company2",
                        "mobilePhone": "13800138002",
                        "email": "[email protected]"
                } 
        ],   
        "authHeader": { 
                "dspId": "048",   
                "token": "048" 
        } 
};
    return json;
}

3.jsp測試代碼:

<button onclick="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地址成功!


本人菜鳥一個,有錯誤的地方,希望大家指出來,共同學習!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章