Inspired by Seline's founder letter.
 
Geolocation helper function for @nextjs server components.
import { headers } from "next/headers";
 
export function getGeoLocation() {
  const headersList = await headers();
 
  return {
    ip: headersList.get("x-real-ip") || "Unknown IP",
    country: headersList.get("x-vercel-ip-country") || "Unknown Country",
    city: headersList.get("x-vercel-ip-city") || "Unknown City",
  };
}
 
 
import { headers } from "next/headers";
 
export function getGeoLocation() {
  const headersList = await headers();
 
  return {
    ip: headersList.get("x-real-ip") || "Unknown IP",
    country: headersList.get("x-vercel-ip-country") || "Unknown Country",
    city: headersList.get("x-vercel-ip-city") || "Unknown City",
  };
}
 
 
 
📍   This implementation works only for Vercel deployments. Learn more.