我想用我的弗吉尼亚(加利福尼亚)服务器为东(西)海岸的游客提供服务。为此,我计划使用 Geoipdns 和 MaxMind 的 IP 到位置映射。MaxMind 免费提供两个数据集:GeoLite Country 和 GeoLite City。但是,它们都没有定义东/西海岸地区。一个可能的解决方案是编写一个脚本来组合 GeoLite City 中东/西海岸城市的所有 IP 范围,但这听起来有点愚蠢。
这样做的最佳做法是什么?有什么建议或替代方案吗?
我想用我的弗吉尼亚(加利福尼亚)服务器为东(西)海岸的游客提供服务。为此,我计划使用 Geoipdns 和 MaxMind 的 IP 到位置映射。MaxMind 免费提供两个数据集:GeoLite Country 和 GeoLite City。但是,它们都没有定义东/西海岸地区。一个可能的解决方案是编写一个脚本来组合 GeoLite City 中东/西海岸城市的所有 IP 范围,但这听起来有点愚蠢。
这样做的最佳做法是什么?有什么建议或替代方案吗?
你多虑了这个问题。
GeoIP City API为您提供状态代码。
花 10 分钟时间,列出您想要发送到辅助服务器的状态列表。
在 Perl 中:
my %west_coast_states = qw( ca or wa ut nv ... );
my $state = ip_to_state_code();
if ($west_coast_states{$state}) {
# send West Coast states to West Coast server
} else {
# all other users sent to East Coast server
}