Как вывести IP-адреса пользователей в WordPress
На днях один из наших пользователей задал вопрос, можно ли как-то определить и вывести на экран IP-адрес отдельного посетителя в WordPress. Наш ответ был следующим: естественно, можно! В данной статье мы покажем вам, как отобразить IP-адрес пользователя в WordPress.
Вы можете использовать это для создания своего собственного сайта с детектированием IP. Когда посетитель зайдет к вам на сайт, вы увидите его IP-адрес.
Все, что вам нужно сделать – это добавить следующий фрагмент кода в файл functions.php:
// Display User IP in WordPress
function wpb_show_ip()
{
$user_ip = $_SERVER['REMOTE_ADDR'];
return $user_ip;
}
add_shortcode('show_ip', 'wpb_show_ip');
Далее вам нужно будет добавить следующий шорткод в запись, на страницу или в виджет сайдбара:
[ show_ip ]
Если вы используете шорткод в вашем текстовом виджете и он не работает, то в таком случае вам нужно убедиться, что шорткоды для виджетов сайдбара включены.
Примечание от Пиппина Вильямсона: стоит отметить, что $_SERVER[‘REMOTE_ADDR’] не всегда корректно возвращает IP. Если пользователь использует совместное подключение к интернету, то в таком случае нужно использовать $_SERVER[‘HTTP_X_FORWARDED_FOR’]. IP может также быть представлен в переменной $_SERVER[‘HTTP_CLIENT_IP’]. Если пользователь использует прокси, вам нужно использовать $_SERVER[‘HTTP_X_FORWARDED_FOR’].
В целом, чтобы точно получить IP-адрес, следует использовать следующую функцию:
<?php
function get_the_user_ip() {
if ( ! empty( $_SERVER['HTTP_CLIENT_IP'] ) ) {
//check ip from share internet
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif ( ! empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) {
//to check ip is pass from proxy
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
return apply_filters( 'edd_get_ip', $ip );
}
Источник: wpbeginner.com