Привет PHP: <?php // 1 вариант $ip = $_SERVER['REMOTE_ADDR'] ?? ''; print $ip . "\r\n"; // 2 вариант с валидацией ip function getIP() { $ip = $_SERVER['REMOTE_ADDR'] ?? ''; // Валидация IPv4 if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) { return $ip; } // Валидация IPv6 if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) { return $ip; } return ''; } $ip = getIP(); print $ip . "\r\n"; // 3 вариант (если учитывать прокси) function getIP2() { $headers = [ 'HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR' ]; foreach ($headers as $header) { if (isset($_SERVER[$header])) { $ip = trim($_SERVER[$header]); // Берем первый IP если их несколько $ips = explode(',', $ip); $ip = trim($ips[0]); if (filter_var($ip, FILTER_VALIDATE_IP)) { return $ip; } } } return ''; } $ip = getIP2(); print $ip . "\r\n"; на самом деле достаточно первого варианта.