只需要在网络的任意一层对访客进行区分即可。
想要区分,首先得能够识别 IP 来自哪个地区,这种对应关系叫 IP 库,如 Maxmind。
它们的商业价值在于精准,更新及时和维度丰富。
甚至可按城市区分和给出真人概率。
同时屏蔽地区和机房 IP 则我们自己也会上不去,所以通常只按 IP 封地区和屏蔽浏览器语言。
通过 IP 封国家和地区的常见方法
Geo DNS
在域名解析时进行区分,国外通常收费,用国内服务则国外解析会慢点。
Webserver
在 Nginx 等网页服务器上进行区分,配置不便且要自己更新。
CDN
方便且 CDN 服务商会更新,以 Cloudflare 为例,创建 Firewall rule:

程序
比如用 WordPress 插件 IQ Block Country,或者 WordFence 等 WAF ,用这种方法缓存插件不能直接返回静态 html,否则会被绕过。
通过浏览器语言屏蔽
PHP
和上边的 程序 缺点一样。
JS
网上代码很多,不给出自用的了,对于中文,注意区分 zh_CN, zh_TW,zh_TW,zh_SG。