【发布时间】:2018-11-01 02:40:54
【问题描述】:
随着 GDPR 的临近,我编写了一个愚蠢的脚本来阻止所有欧盟国家访问网站。问题是我找不到详尽的欧盟国家代码列表。
有一个要点可以帮助我入门,但是,有一些 cmets 尚未实现,因此尚不清楚完整列表可能是什么样的。
https://gist.github.com/henrik/1688572
有没有人知道欧盟国家代码的完整列表,包括最外围地区、特殊情况以及我可能遗漏的任何其他内容?
到目前为止,这是我设法整理出来的。
欧盟 28 国
奥地利,奥地利
比利时,比利时
BG,保加利亚
克罗地亚人力资源部
CY, 塞浦路斯
捷克共和国 CZ
DK, 丹麦
EE,爱沙尼亚
芬兰,芬兰
法国,法国
德国,德国
GR, 希腊
匈牙利胡
IE,爱尔兰,共和国 (EIRE)
IT, 意大利
LV, 拉脱维亚
LT, 立陶宛
卢森堡卢森堡
MT, 马耳他
荷兰,荷兰
PL,波兰
PT,葡萄牙
RO,罗马尼亚
SK, 斯洛伐克
SI,斯洛文尼亚
西班牙 ES
瑞典东南部
GB,英国(大不列颠)
最外围地区:欧盟的一部分 (OMR) https://en.wikipedia.org/wiki/Special_member_state_territories_and_the_European_Union#Outermost_regions
GF,法属圭亚那
全科医生,瓜德罗普岛
MQ,马提尼克
我,黑山
YT,马约特岛
RE,留尼汪
MF,圣马丁
没有代码,亚速尔群岛
无代码,加那利群岛
没有代码,马德拉岛
GI,直布罗陀
AX,奥兰群岛
没有代码,Büsingen am Hochrhein
No Code、Campione d'Italia 和利维尼奥
没有代码,休达和梅利利亚
没有代码,塞浦路斯的联合国缓冲区
没有代码,黑尔戈兰
没有代码,阿索斯山
海外国家和地区 (OCT) https://en.wikipedia.org/wiki/Special_member_state_territories_and_the_European_Union#Overseas_countries_and_territories
总理,圣皮埃尔和密克隆
GL,格陵兰
BL,圣巴特勒梅
SX,圣马丁
AW,阿鲁巴岛
CW, 库拉索
WF、瓦利斯和富图纳群岛
PF,法属波利尼西亚
北卡罗来纳州,新喀里多尼亚
TF,法属南部领地
AI,安圭拉
BM, 百慕大
IO,英属印度洋领地
VG,维尔京群岛,英国
KY, 开曼群岛
FK,福克兰群岛(马尔维纳斯)
MS,蒙特塞拉特
PN,皮特凯恩
SH,圣赫勒拿
GS、南乔治亚岛和南桑威奇群岛
TC,特克斯和凯科斯群岛
微状态(不确定这些如何适应) https://en.wikipedia.org/wiki/Microstates_and_the_European_Union
公元,安道尔
李,列支敦士登
MC,摩纳哥
SM,圣马力诺
弗吉尼亚州,梵蒂冈城
其他(不确定这些是否适合)
JE,泽西岛
GG,根西岛
GI,直布罗陀
欧盟
欧盟,欧盟(不确定这是否有用,是否保持最新?)
从这个列表中,我最终得到了以下 .htaccess 脚本来阻止欧盟访问网站。
我应该补充一点,我无意使用它,这只是配置 apache 模块和搞乱 GeoIP/MaxMind 的一个很好的练习。
虽然这种情况很荒谬,但我仍然想正确地实现它,它可能有一天对某事或某人有用。
编辑 显然没有那么荒谬,今天我看到大约有十几家公司已经在屏蔽欧盟用户 o_O。
在这种特殊情况下,代码应涵盖 GDPR 适用的欧盟国家/地区代码。我错过了什么吗?
.htaccess
MaxMindDBEnable On
MaxMindDBFile DB /opt/GeoIP/GeoLite2-Country.mmdb
MaxMindDBEnv MM_COUNTRY_CODE DB/country/iso_code
SetEnvIf MM_COUNTRY_CODE ^(AT|BE|BG|HR|CY|CZ|DK|EE|FI|FR|DE|GR|HU|IE|IT|LV|LT|LU|MT|NL|PL|PT|RO|SK|SI|ES|SE|GB|GI|AX|PM|GL|BL|SX|AW|CW|WF|PF|NC|TF|AI|BM|IO|VG|KY|FK|MS|PN|SH|GS|TC|IS|LI|NO|EU) BlockCountry
Deny from env=BlockCountry
更新
GDPR 也适用于欧洲经济区 (EEA) 的部分地区
IS,冰岛
李,列支敦士登
不,挪威
MaxMind 可以为某些欧盟 IP 返回欧盟
欧盟、欧盟
【问题讨论】: