樓上的方法是不合理的。第一,如果用戶使用代理,是無法獲得真實Ip的0;第二,IF語句不能保證禁止IP,而且很多網(wǎng)站并不需要登錄的。給樓主些方法,可供參考。
創(chuàng)新互聯(lián)是專業(yè)的劍川網(wǎng)站建設(shè)公司,劍川接單;提供網(wǎng)站設(shè)計、成都網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進行劍川網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團隊,希望更多企業(yè)前來合作!
1。 獲取用戶IP
public String getRemortIP(HttpServletRequest request) {
if (request.getHeader("x-forwarded-for") == null) {
return request.getRemoteAddr();
}
return request.getHeader("x-forwarded-for");
}
這種方法總是獲得用戶的真實IP
2。禁止IP,可以考慮從服務(wù)器下手
(1) 如果用的是tomcat,那么在tomcat_home/conf/server.xml中的host/host之間加一行代碼:
Valve className="org.apache.catalina.valves.RemoteAddrValve" deny="192.168.1.1"/
這樣192.168.1.1這個ip訪問webapp時會收到 403 錯誤
(2) 如果是apache那么:
Directory /var/web/dir1
Allow from all
Deny from 111.111.111.111
/Directory
上面限制單個IP,限制IP段用*號代替。如111.111.111.*
(3) 或者樓主也可以像樓上說的用代碼實現(xiàn),給你個JS代碼:
SCRIPT LANGUAGE="java script"
!-- Begin
netscape = (navigator.appName.indexOf("Netscape") != -1);
version4 = (navigator.appVersion.indexOf("4.") != -1);
if (netscape version4) {
ip = "" + java.net.InetAddress.getLocalHost().getHostAddress();
if (ip.indexOf("235.12") = -1)
// 這是想要禁止訪問的IP例如: 235.12.xxx.xxx
{
alert("You are not permitted to access this site.");
history.go(-1);
}
}
// End --
/script
將以上代碼加入到head區(qū)域中。
在數(shù)據(jù)庫表中增加一個字段,記錄用戶登錄的ip,在每次登錄的時候都檢測一下該字段是否為空,如果不為空,那么比較數(shù)據(jù)庫中登錄的ip是否跟當(dāng)前ip相同,如果不同,那么強行登錄的話就將新的ip記錄寫到數(shù)據(jù)庫中。
寫一個過濾器,每次在訪問Action的時候都判斷當(dāng)前的ip和數(shù)據(jù)庫中的是否相同,如果不同,那么就強制下線,這樣就限制了另外一個用戶的訪問。
用戶在自己退出的時候清空數(shù)據(jù)庫中的ip記錄,這樣就能保證不影響下次登錄。
還有一種方式就是在每個頁面都寫一個定時,每隔一定時間就向服務(wù)器發(fā)送一次請求判斷當(dāng)前ip與數(shù)據(jù)庫中保存的ip是否相同,如果不同就強制下線。但是這種方式比較耗費連接。
利用字段切割
String a="192.168";
String[] b=a.split(".");
然后重組將二三段用*來替代
當(dāng)前標(biāo)題:java過濾ip地址代碼 java實現(xiàn)過濾鏈
URL標(biāo)題:http://www.muchs.cn/article8/doeepop.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、商城網(wǎng)站、搜索引擎優(yōu)化、微信小程序、網(wǎng)頁設(shè)計公司、手機網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)