Block content according to country
You can use geolocation data to identify a user's country and block content if required.
Geolocation information is available on the Context.geo
object.
import { Context } from "@netlify/edge-functions";
export default async (request: Request, context: Context) => {
const BLOCKED_COUNTRY_CODE = "GB";
const countryCode = context.geo?.country?.code || "US";
const countryName = context.geo?.country?.name || "United States of America";
if (countryCode === BLOCKED_COUNTRY_CODE) {
return new Response(`We're sorry, you can't access our content from ${countryName}!`, {
headers: { "content-type": "text/html" },
status: 451,
});
}
return new Response(`Hello there! You can freely access our content from ${countryName}!`, {
headers: { "content-type": "text/html" },
});
};
See this in action
- Check if you're in a blocked country by running the country block Edge Function
- The Edge Function code: country-block.ts
What are Edge Functions?
Using JavaScript and TypeScript, Netlify Edge Functions give you the power to modify network requests to localize content, serve relevant ads, authenticate visitors, A/B test content, and much more!
This all happens at the Edge — directly from the worldwide location closest to each user.
To use Edge Functions on Netlify, add JavaScript or TypeScript files to a
/netlify/edge-functions
directory in your project.
Deploy this site to Netlify
Try out Edge Functions on Netlify today! Click the button below to deploy this site with all of its demos to your Netlify account.