PHP安全的获取ip

    public static function getIpX(): ?string {
        [$ip] = self::getIp();
        return $ip;
    }

    public static function getIp(): array {
        $ip0 = $ip = $_SERVER['REMOTE_ADDR'] ?? null;
        if (in_array($ip, [
            '10.29.185.7', '127.0.0.1', '172.17.0.1', '172.31.242.237', # 可信IP列表
        ])) {
            $ip1 = $_SERVER['HTTP_X_FORWARDED_FOR'] ?? null;
            if ($ip1) {
                $ip0 = $ip1;
                $ip = explode(',', $ip1)[0];
            }
        }
        if (!$ip) {
            $ip = $_SERVER['REMOTE_ADDR'] ?? null;
        }
        return [$ip, $ip0];
    }

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注