Created
September 26, 2019 17:01
-
-
Save lynt-smitka/838405fc6797c1c7e20a6f22883cf38b to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
function get_real_client_ip() | |
{ | |
$ipaddress = ''; | |
if (isset($_SERVER['HTTP_CLIENT_IP'])) | |
$ipaddress = $_SERVER['HTTP_CLIENT_IP']; | |
else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) | |
$ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; | |
else if (isset($_SERVER['HTTP_X_FORWARDED'])) | |
$ipaddress = $_SERVER['HTTP_X_FORWARDED']; | |
else if (isset($_SERVER['HTTP_FORWARDED_FOR'])) | |
$ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; | |
else if (isset($_SERVER['HTTP_FORWARDED'])) | |
$ipaddress = $_SERVER['HTTP_FORWARDED']; | |
else if (isset($_SERVER['REMOTE_ADDR'])) | |
$ipaddress = $_SERVER['REMOTE_ADDR']; | |
else | |
$ipaddress = 'Unknown'; | |
return $ipaddress; | |
} | |
add_action('admin_init', 'lynt_blokace_register_settings'); | |
add_action('admin_menu', 'lynt_blokace_register_settings_page'); | |
add_action('init', 'lynt_blokace_init'); | |
function lynt_blokace_init() | |
{ | |
$ips = preg_split("/(\r\n|\n|\r)/", get_option('lynt_blokace_ips'), -1, PREG_SPLIT_NO_EMPTY); | |
if (sizeof($ips) && !in_array( get_real_client_ip(), $ips)) wp_die('Smolík'); | |
} | |
function lynt_blokace_register_settings_page() | |
{ | |
add_options_page('Nastavení Blokace', 'Blokace', 'manage_options', 'lynt-blokace', 'lynt_blokace_render_settings_page'); | |
} | |
function lynt_blokace_register_settings() | |
{ | |
add_option('lynt_blokace_ips', ''); | |
register_setting('lynt_blokace_group', 'lynt_blokace_ips'); | |
} | |
function lynt_blokace_render_settings_page() | |
{ | |
?> | |
<div class="wrap"> | |
<h1>Blokace</h1> | |
<form method="post" action="options.php"> | |
<?php settings_fields('lynt_blokace_group'); | |
?> | |
<table class="form-table"> | |
<tr> | |
<th scope="row"><label for="lynt_blokace_ips">Povolené IP</label></th> | |
<td><textarea id="lynt_blokace_ips" name="lynt_blokace_ips" placeholder="IP na každý řádek" rows="20" cols="20"><?php echo sanitize_textarea_field(get_option('lynt_blokace_ips')); ?></textarea> | |
</tr> | |
</table> | |
<small>Vaše IP: <?php echo get_real_client_ip(); ?></small> | |
<?php submit_button(); | |
?> | |
</form> | |
</div> | |
<?php | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment