#php
#php
Вопрос:
// проверьте общий IP-адрес интернета / интернет-провайдера , если (!empty($_SERVER['HTTP_CLIENT_IP']) amp;amp; validate_ip($_SERVER['HTTP_CLIENT_IP'])) { возвращает $_SERVER['HTTP_CLIENT_IP']; } // проверьте, проходят ли IP-адреса через прокси , если (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { // проверьте, существует ли несколько IP-адресов в var if (strpos($_SERVER['HTTP_X_FORWARDED_FOR'], ',') !== ложь) { $iplist = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); foreach ($iplist как $ip) { если (validate_ip($ip)) возвращает $ip; } } else { if (validate_ip($_SERVER['HTTP_X_FORWARDED_FOR'])) возвращает $_SERVER['HTTP_X_FORWARDED_FOR']; } } if (!empty($_SERVER['HTTP_X_FORWARDED']) amp;amp; validate_ip($_SERVER['HTTP_X_FORWARDED'])) возвращает $_SERVER['HTTP_X_FORWARDED']; if (!empty($_SERVER['HTTP_X_CLUSTER_CLIENT_IP']) amp;amp; validate_ip($_SERVER['HTTP_X_CLUSTER_CLIENT_IP'])) возвращает $_SERVER['HTTP_X_CLUSTER_CLIENT_IP']; if (!empty($_SERVER['HTTP_FORWARDED_FOR']) amp;amp; validate_ip($_SERVER['HTTP_FORWARDED_FOR'])) возвращает $_SERVER['HTTP_FORWARDED_FOR']; if (!empty($_SERVER['HTTP_FORWARDED']) amp;amp; validate_ip($_SERVER['HTTP_FORWARDED'])) возвращает $_SERVER['HTTP_FORWARDED']; // возвращает ненадежный ip, поскольку все остальное не удалось вернуть $_SERVER['REMOTE_ADDR']; } $url = "http://ipinfo.io /".get_ip_address()."/json"; $json = file_get_contents($url); $obj = json_decode($json);
Пожалуйста, проверьте это http://screencast.com/t/E9mlGvUt8J
Комментарии:
1. Где находится функция с именем
validate_ip
?2. quite sure
validate_ip
не является стандартной функцией php, что означает, что либо вы ее создали, либо она является частью фреймворка, о котором вы не упомянули.
Ответ №1:
У вас нет функции validate_ip(). Для проверки IP-адреса в php вы можете использовать это: filter_var($ip_a, FILTER_VALIDATE_IP)