這幾天調試別人寫好的代碼,在獲取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地址成功!
本人菜鳥一個,有錯誤的地方,希望大家指出來,共同學習!