国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

Java如何限制IP訪問頁面

瀏覽:3日期:2022-08-24 14:04:57

最近遇到一個需求,一個只能內網訪問的網站,需要限制ip訪問。就是網站內的部分文章只有白名單內的ip才能打開。因為是靜態化的網站,所有文章都是靜態html頁面。所以首先想到的就是直接js獲取訪問者ip然后再判斷是否在白名單內,不在白名單內就到沒有權限頁面。

但是JS獲取內網Ip還是比較麻煩的,查到幾個方法最后試了都不行。

記錄下查到的幾個方法和最后實現的方法。

JS獲取外網ip的方法:

//最簡單的獲取外網ip的方法??梢灾苯佑?,但是沒啥用..<script src='http://pv.sohu.com/cityjson?ie=utf-8'></script><script> document.write(returnCitySN['cip']);</script>

JS獲取內網Ip的方法

function getIP(callback) { let recode = {}; let RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection; // 如果不存在則使用一個iframe繞過 if (!RTCPeerConnection) { // 因為這里用到了iframe,所以在調用這個方法的script上必須有一個iframe標簽 // <iframe sandbox='allow-same-origin' style='display:none;'></iframe> let win = iframe.contentWindow; RTCPeerConnection = win.RTCPeerConnection || win.mozRTCPeerConnection || win.webkitRTCPeerConnection; } //創建實例,生成連接 let pc = new RTCPeerConnection(); // 匹配字符串中符合ip地址的字段 function handleCandidate(candidate) { debugger; let ip_regexp = /([0-9]{1,3}(.[0-9]{1,3}){3}|([a-f0-9]{1,4}((:[a-f0-9]{1,4}){7}|:+[a-f0-9]{1,4}){6}))/; let ip_isMatch = candidate.match(ip_regexp)[1]; if (!recode[ip_isMatch]) { callback(ip_isMatch); recode[ip_isMatch] = true; } } //監聽icecandidate事件 pc.onicecandidate = (ice) => { if (ice.candidate) { handleCandidate(ice.candidate.candidate); } }; //建立一個偽數據的通道 pc.createDataChannel(’’); pc.createOffer((res) => { pc.setLocalDescription(res); }, () => {}); //延遲,讓一切都能完成 setTimeout(() => { let lines = pc.localDescription.sdp.split(’n’); lines.forEach(item => { if (item.indexOf(’a=candidate:’) === 0) { handleCandidate(item); } }) }, 1000); }getIP(function (ip) { alert(ip); });

利用WebRTC獲取真實內網Ip,WebRTC是一個支持網頁瀏覽器進行實時語音對話或視頻對話的API

由于WebRTC在建立連接過程中,會向對方發送本地地址SDP,因此可以通過訪問SDP獲得訪問者的IP

但是有些瀏覽器用不了,所以還是放棄這種方式了。

最后還是覺得用Java來實現比較好吧,前端文章頁寫個ajax,每次進入文章先判斷文章是否需要限制IP訪問,如果需要就請求下后端,后端獲取Ip判斷是否在白名單內。注意ajax要用同步。

Java獲取訪問者Ip方法:

String ip = request.getHeader('x-forwarded-for'); if (ip == null || ip.length() == 0 || 'nuknown'.equalsIgnoreCase(ip)) { ip = request.getHeader('Proxy-Client-IP'); } if (ip == null || ip.length() == 0 || 'nuknown'.equalsIgnoreCase(ip)) { ip = request.getHeader('WL-Proxy-Client-IP'); } if (ip == null || ip.length() == 0 || 'nuknown'.equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } System.out.println(ip);

以上方法均來自網絡,親測有效,記錄于此。

以上就是Java如何限制IP訪問頁面的詳細內容,更多關于Java限制IP訪問的資料請關注好吧啦網其它相關文章!

標簽: Java
相關文章:
主站蜘蛛池模板: aaa毛片在线 | 性感美女一级片 | 九九九国产 | 欧美一区二区三区精品影视 | 在线视频免费观看a毛片 | 国产3级在线| 在线看毛片网站 | 性盈盈影院在线观看 | 久久成人性色生活片 | 深夜爽爽福利gif在线观看 | 天天看片天天爽_免费播放 天天看夜夜 | 久久久成人啪啪免费网站 | 国产三级日本三级美三级 | 草草国产成人免费视频 | 超级乱淫视频aⅴ播放视频 超级碰碰碰在线观看 | 成人免费在线 | 毛片一区二区三区 | 九九99视频在线观看视频观看 | 日本精品久久久久久久久免费 | 免费观看一级欧美在线视频 | 亚洲精品欧洲久久婷婷99 | 精品国产不卡一区二区三区 | 欧美一二三区在线 | 香蕉97碰碰视频免费 | 日韩高清一级毛片 | 一区二区精品在线 | 久久99精品久久只有精品 | 97超级碰碰碰碰在线视频 | 欧美日韩大片 | 亚洲精品美女国产一区 | 成 人 a v免费视频 | 91成人软件 | 亚洲精品15p | 天天爽夜夜操 | 丁香五香天堂 | 久久99精品久久久久久青青91 | 国产欧美一区二区三区免费看 | 日韩免费三级 | 四色6677最新永久网站 | 成人免费公开视频 | 欧美孕妇孕交 |