主題: 如何增加限制註冊者IP(非單一IP) 作者: cchien 於 五月 31, 2007, 11:05:27 上午 大家好:
我自己從網路上搜尋到兩種方式來限制註冊者IP作法,但都是只能單一IP限制,無法做多組IP過濾限制,想請教各位是否有解決方式。 第一種方式: 學校部落格僅開放校內 IP 註冊: 修改 LifeType 網站根目錄的 register.php 在檔案開頭 <?php 後面加入下面一行 include( PLOG_CLASS_PATH."checkip.php" ); 建立 checkip.php 這個檔案 <?php include( PLOG_CLASS_PATH."class/net/client.class.php"); $myIP = new Client(); $ip = substr($myIP->getIp(), 0, 12); if (strcmp($ip,'140.127.243.') == 0){ echo "Your IP:". $myIP->getIp() . "<br>"; echo 'IP 檢查 OK'; } else { // Header("Location: summary.php"); Header("Refresh:5;URL=summary.php"); echo '<meta http-equiv="refresh" content="5; URL=summary.php">'; echo "您的 IP 是:". $myIP->getIp() . "不是本校 IP,不開放對外註冊!"; exit; } ?> 你可以看到是檢查ip前12位元,如果比對成立就顯示檢查OK,往前執行,如果不是顯示不是本校 IP,不開放對外註冊 資料來源:http://b2d.phc.edu.tw/modules/tadbook2/view.php?book_sn=12&bdsn=684 第二種方式:※限制使用者註冊IP class/summary/action/registeraction.class.php //限制IP註冊 $ip = ( getenv("HTTP_X_FORWARDED_FOR" ) ) ? getenv("HTTP_X_FORWARDED_FOR" ) : getenv("REMOTE_ADDR" ); $Filter1 = ereg("允許的網段", $ip); if( $config->getValue( "summary_disable_registration" ) || $Filter1 != "1" ) { 資料來源:http://blogs.mcps.tp.edu.tw/blog/9 主題: Re: 如何增加限制註冊者IP(非單一IP) 作者: lss 於 六月 01, 2007, 08:00:33 上午 與其使用 IP 網段限制註冊,造成使用者的不便,不如改用學校其他服務的身份認證,例如 LDAP 、 Email … 等等。
這樣做的好處是,有學校其他網路服務帳號的人才能註冊 blog ,而且不會受限於離開學校就無法申請。 現下可以透過自行開發的 userdata provider 界面來完成,比起之前尚未提供 userdata provider 的版本應該好做多了。 我是蠻早就想做了,一直抽不出時間就是了 :-( 如果有做出來,那是一定會分享的,但是完全沒有時間表哦! lss 主題: Re: 如何增加限制註冊者IP(非單一IP) 作者: wkwtb 於 六月 01, 2007, 11:42:33 上午 你要限制的IP是?
第一個是我寫的~ 土法煉鋼~ 我這個人要不然就是很龜毛,能力不夠龜毛不起來的時候就會自暴自棄.. 就像第一個方法一樣 Q_Q 看了一下,第二個方法比較好的感覺,找個時間我也去更新一下我的資料 還是一樣,土法煉鋼幫你改一下第二個 改成下面這樣試試看,程式不漂亮,在找到更好的方法之前,撐著點用, 懶得測試.... 不能用別怪我 $ip = ( getenv("HTTP_X_FORWARDED_FOR" ) ) ? getenv("HTTP_X_FORWARDED_FOR" ) : getenv("REMOTE_ADDR" ); do { $Filter1 = 0; $Filter1 = ereg("允許的網段1", $ip); if ($Filter1 =="1") break; $Filter1 = ereg("允許的網段2", $ip); if ($Filter1 =="1") break; $Filter1 = ereg("允許的網段3", $ip); if ($Filter1 =="1") break; } while (0); if( $config->getValue( "summary_disable_registration" ) || $Filter1 != "1" ) { 主題: Re: 如何增加限制註冊者IP(非單一IP) 作者: cchien 於 六月 02, 2007, 09:17:08 上午 與其使用 IP 網段限制註冊,造成使用者的不便,不如改用學校其他服務的身份認證,例如 LDAP 、 Email … 等等。 Lss您好:這樣做的好處是,有學校其他網路服務帳號的人才能註冊 blog ,而且不會受限於離開學校就無法申請。 現下可以透過自行開發的 userdata provider 界面來完成,比起之前尚未提供 userdata provider 的版本應該好做多了。 我是蠻早就想做了,一直抽不出時間就是了 :-( 如果有做出來,那是一定會分享的,但是完全沒有時間表哦! lss 我有找到可以利用學務系統(sfs3)的帳號密碼來做註冊前的認證,但這只能做教職員的認證當然也可以作學生的認證檢查,但因為自己有一些忙沒有針對學生部分做帳號密碼的建立,所以想說只要用限制IP區段的方式來作為註冊的控制方法。 你要限制的IP是? 另外,我也試著修改checkip.php這程式,做了以下的增加(紅色部分)也可以做到我想要的需求。第一個是我寫的~ 土法煉鋼~ 我這個人要不然就是很龜毛,能力不夠龜毛不起來的時候就會自暴自棄.. 就像第一個方法一樣 Q_Q 看了一下,第二個方法比較好的感覺,找個時間我也去更新一下我的資料 還是一樣,土法煉鋼幫你改一下第二個 改成下面這樣試試看,程式不漂亮,在找到更好的方法之前,撐著點用, 懶得測試.... 不能用別怪我 $ip = ( getenv("HTTP_X_FORWARDED_FOR" ) ) ? getenv("HTTP_X_FORWARDED_FOR" ) : getenv("REMOTE_ADDR" ); do { $Filter1 = 0; $Filter1 = ereg("允許的網段1", $ip); if ($Filter1 =="1") break; $Filter1 = ereg("允許的網段2", $ip); if ($Filter1 =="1") break; $Filter1 = ereg("允許的網段3", $ip); if ($Filter1 =="1") break; } while (0); if( $config->getValue( "summary_disable_registration" ) || $Filter1 != "1" ) { $myIP = new Client(); $ip = substr($myIP->getIp(), 0, 10); if (strcmp($ip,"IP區段1") == 0 || strcmp($ip,"IP區段2") == 0 ){ 主題: Re: 如何增加限制註冊者IP(非單一IP) 作者: puffy 於 九月 09, 2008, 03:23:38 下午 請問一下有那位先進己經寫出可以用某一個mail網域來限制註冊了嗎?
例如:我只想讓abc.com.tw這個mial的user註冊要怎麼做 |