prefix . "ip_authorize"; if($wpdb->get_var("show tables like '$table'") != $table) { $sql = "CREATE TABLE " . $table . " ( id int(11) NOT NULL AUTO_INCREMENT, ip varchar(25) NOT NULL, authorize int(1) NOT NULL, PRIMARY KEY (id) )"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } $table = $wpdb->prefix . "ip_authorize_cookie"; if($wpdb->get_var("show tables like '$table'") != $table) { $sql = "CREATE TABLE " . $table . " ( id int(11) NOT NULL AUTO_INCREMENT, ip_id varchar(25) NOT NULL, auth_hash varchar(250) NOT NULL, authorize int(1) NOT NULL, PRIMARY KEY (id) )"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } $table = $wpdb->prefix . "ip_authorize_location"; if($wpdb->get_var("show tables like '$table'") != $table) { $sql = "CREATE TABLE " . $table . " ( id int(1) NOT NULL AUTO_INCREMENT, url varchar(100) NOT NULL, authorize int(1) NOT NULL, PRIMARY KEY (id) )"; require_once(ABSPATH . 'wp-admin/includes/upgrade.php'); dbDelta($sql); } } register_activation_hook(__FILE__,'ip_authorize_install'); function ip_authorize_deactivate() { global $wpdb; $table = $wpdb->prefix . "ip_authorize"; if($wpdb->get_var("show tables like '$table'") == $table) { //$sql = "DROP TABLE IF EXISTS". $table; $wpdb->query("DROP TABLE IF EXISTS $table"); } $table = $wpdb->prefix . "ip_authorize_location"; if($wpdb->get_var("show tables like '$table'") == $table) { //$sql = "DROP TABLE IF EXISTS". $table; $wpdb->query("DROP TABLE IF EXISTS $table"); } $table = $wpdb->prefix . "ip_authorize_cookie"; if($wpdb->get_var("show tables like '$table'") == $table) { //$sql = "DROP TABLE IF EXISTS". $table; $wpdb->query("DROP TABLE IF EXISTS $table"); } } register_deactivation_hook(__FILE__, 'ip_authorize_deactivate' ); function ip_authorize_menu() { $page = add_options_page('Authorize by IP', 'Authorize by IP', 'manage_options', 'IP-Authorize-slug', 'IP_Authorize_option'); add_action("admin_print_scripts-" . $page, "authorize_head"); } function authorize_head() { ?>

Invalid IP. Only IPv4 is allowed!.

'; } else { //first, check if IP is already in database //before adding new IP $rec_ip = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_ip_authorize WHERE ip = '" . $_POST['IP'] . "';")); if ( $rec_ip == "0" ) { //add to database //default value will be 1 $wpdb->query("INSERT INTO wp_ip_authorize(ip, authorize) VALUES('" . $_POST['IP'] . "', '1')"); echo '

New IP added.

'; } else { echo '

Failed to add new IP. Given IPv4 is already in database.

'; } } break; case'add-new-url-unauthorized': if(!filter_var($_POST['url'], FILTER_VALIDATE_URL)) { echo '

Invalid URL.

'; } else { $wpdb->query("INSERT INTO wp_ip_authorize_location(url, authorize) VALUES('" . $_POST['url'] . "', '0')"); echo '

New URL added.

'; } break; case'block-ip': $wpdb->query("UPDATE wp_ip_authorize SET authorize = '0' WHERE id = '" . $_GET['id'] . "'"); $url = $wpdb->get_results("SELECT * FROM wp_ip_authorize WHERE id = '" . $_GET['id'] . "'"); foreach ( $url as $url ) { $ip = $url->ip; } $wpdb->query("UPDATE wp_ip_authorize_cookie SET authorize = '0' WHERE ip = '" . $ip . "'"); echo '

Success!.

'; break; case'allow-ip': $wpdb->query("UPDATE wp_ip_authorize SET authorize = '1' WHERE id = '" . $_GET['id'] . "'"); echo '

Success!.

'; $url = $wpdb->get_results("SELECT * FROM wp_ip_authorize WHERE id = '" . $_GET['id'] . "'"); foreach ( $url as $url ) { $ip = $url->ip; } $wpdb->query("UPDATE wp_ip_authorize_cookie SET authorize = '1' WHERE ip = '" . $ip . "'"); break; case'delete-ip': $wpdb->query("DELETE FROM wp_ip_authorize WHERE id = '" . $_GET['id'] . "'"); echo '

You have deleted IP!.

'; break; case'void-all-cookies': $wpdb->query("DELETE FROM wp_ip_authorize_cookie"); echo '

All cookies have been cleaned!.

'; break; case'update-url': if( $_POST['auth_ip'] == "") { $wpdb->query("DELETE FROM wp_ip_authorize_location"); } else { if(!filter_var($_POST['auth_ip'], FILTER_VALIDATE_URL)) { echo '

Invalid URL.

'; } else { $wpdb->query("UPDATE wp_ip_authorize_location SET url = '" . $_POST['auth_ip'] . "' WHERE authorize = '0'"); echo '

Url updated!.

' . $_POST['auth_ip']; } } break; } ?>

Welcome to Authorize by IP for Wordpress

get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_ip_authorize;")); if ( $record != "0" ) { ?>
get_results("SELECT * FROM wp_ip_authorize ORDER BY id ASC"); foreach ( $ip as $ip ) { $id = $ip->id; $record_ip = $ip->ip; $authorize = $ip->authorize; ?>
IPAuthorizedAction
'; }else{ echo ''; } ?>
get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_ip_authorize_location WHERE authorize = '0';")); if ( $record != "0" ) { ?>
get_results("SELECT * FROM wp_ip_authorize_location WHERE authorize = '0'"); foreach ( $url as $url ) { $url_auth = $url->url; } ?>
URL For Unauthorized IP:

Add New URL for Unauthorized IP

URL:
get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_ip_authorize_cookie;")); if ( $record != "0" ) { ?>
Void all cookie authorizations:

Add New IP

Only IPv4 is allowed.
IP:
get_results("SELECT * FROM wp_ip_authorize_location WHERE authorize = '0'"); foreach ( $url as $url ) { $unmatched_ip_location = $url->url; } if ( $unmatched_ip_location == "" ) //no value, means null //takes no action { echo "\n "; echo "\n "; echo "\n"; } else { //check if cookie is present if( isset( $_COOKIE['auth_ip'] ) ) { //check if cookie is matched in database $record = $wpdb->get_var($wpdb->prepare("SELECT COUNT(*) FROM wp_ip_authorize_cookie WHERE auth_hash = '". $_COOKIE['auth_ip'] ."';")); if( $record == "0") { //wrong cookie, check ip in database //check if match in database $check = $wpdb->get_results("SELECT * FROM wp_ip_authorize WHERE ip = '$cip'"); foreach( $check as $check ) { $check->ip; $check->authorize; } //unmatched, means unauthorized if( !$check->ip ) { echo "\n "; echo "\n "; echo "\n"; exit(); } //matched, check if authorized or not else { if( $check->authorize == "1" ) { //authorized, load wordpress url //and do nothing } else { //unauthorized, redirect to alternative site echo "\n "; echo "\n "; echo "\n "; exit(); } } } else { //check if cookie is allowed in database $cookie = $wpdb->get_results("SELECT * FROM wp_ip_authorize_cookie WHERE ip = '$cip'"); foreach( $cookie as $cookie ) { $cookie->ip; $cookie->authorize; } if( $cookie->authorize == "0" ) { //unauthorized, redirect echo "\n "; echo "\n "; echo "\n "; exit(); } } } else { //check if match in database $check = $wpdb->get_results("SELECT * FROM wp_ip_authorize WHERE ip = '$cip'"); foreach( $check as $check ) { $check->ip; $check->authorize; } //unmatched, means unauthorized if( !$check->ip ) { echo "\n "; echo "\n "; echo "\n"; exit(); } //matched, check if authorized or not else { if( $check->authorize == "1" ) { //authorized, load wordpress url //and do nothing } else { //unauthorized, redirect to alternative site echo "\n "; echo "\n "; echo "\n "; exit(); } } } } } function header_override() { add_filter( 'wp_loaded', 'cookie_header' ); } function cookie_header() { global $wpdb; session_start(); $auth_hash = md5( time() ); $cip = $_SERVER['REMOTE_ADDR']; //check if match in database $check = $wpdb->get_results("SELECT * FROM wp_ip_authorize WHERE ip = '$cip'"); foreach( $check as $check ) { $check->ip; $check->authorize; } //unmatched, means unauthorized if( !$check->ip ) { //do nothing } //matched, check if authorized or not else { if( $check->authorize == "1" ) { //authorized, cookie manipulation here if ( !isset( $_COOKIE["auth_ip"] ) ) { setcookie("auth_ip", "$auth_hash", time()+60*60*24*30); } //echo $auth_hash; $wpdb->query("INSERT INTO wp_ip_authorize_cookie(ip, auth_hash, authorize) VALUES('" . $_SERVER['REMOTE_ADDR'] . "', '" . $_COOKIE["auth_ip"] . "', '1')"); } } } ?>