View Single Post
  #4  
Old 10-14-2003, 08:38 AM
Logician's Avatar
Logician Logician is offline
 
Join Date: Nov 2001
Location: inside vb code
Posts: 4,449
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Here you go:

1- First create a new user profile field in your admincp, make it admin viewable/editable only, note its ID.

2- Create a new template (in all template sets) with this name: "error_unallowedip". Its content is:
"Your IP is not in the allowed IP pool for this user!"

edit functions.php, find:

PHP Code:
global $enablebanning,$banip,$webmasteremail,$session
Replace it as:
PHP Code:
global $enablebanning,$banip,$webmasteremail,$session,$bbuserinfo
find:
PHP Code:
    $addresses=explode(" "preg_replace("/[[:space:]]+/"" "$banip) );
    while (list(
$key,$val)=each($addresses)) {
      if (
strstr(" ".$ipaddress," ".trim($val))!="") {
        eval(
"standarderror(\"".gettemplate("error_banip")."\");");
      }
    }
  } 
AFTER THAT add:
PHP Code:
$banip2 trim($bbuserinfo['fieldX']);
    if (
$banip2 and $bbuserinfo['userid']>0)
    {
        
$ipaddress=getenv("REMOTE_ADDR");
        
$addresses2=explode(" "preg_replace("/[[:space:]]+/"" "$banip2) );
            while (list(
$key,$val)=each($addresses2)) 
            {
            if (
trim($val) AND substr($ipaddress,0,strlen(trim($val)))==trim($val)) {$IPallowed=1;}
            }
        if (
$IPallowed==0) {eval("standarderror(\"".gettemplate("error_unallowedip")."\");");}
    } 
(Replace X with your userprofilefield ID!)

Now you can enter allowed IPs for any member to the userprofile field in their edit user page in your admin cp. Seperate IPs with space and you can use partial IP's too. If you enter IPs to this field for a user, user will be disallowed access if his IP does not match to any IPs in that pool. If you leave that field blank or if user is guest, he won't be affected by this hack.

Enjoy.
Reply With Quote
 
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.01162 seconds
  • Memory Usage 1,792KB
  • Queries Executed 11 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD_SHOWPOST
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (4)bbcode_php
  • (1)footer
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (6)option
  • (1)post_thanks_box
  • (1)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (1)post_thanks_postbit_info
  • (1)postbit
  • (1)postbit_onlinestatus
  • (1)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open 

Phrase Groups Available:
  • global
  • postbit
  • reputationlevel
  • showthread
Included Files:
  • ./showpost.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showpost_start
  • bbcode_fetch_tags
  • bbcode_create
  • postbit_factory
  • showpost_post
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • showpost_complete