右,
基本上我需要计算从服务器到最终用户的最短路径。 我有2个地理位置的服务器 - 一个在英国,一个在美国。
我需要根据最终用户的位置确定从哪个服务器加载内容。
我最初想过使用fsock / curl / fgc并使用用户的IP地址发送$ _GET变量,然后(如果使用tracert)查看哪个输出具有最短的跳数,以及我是否打算使用ping ,看到最小的ping,显然。将所有用户的IP地址存储在一个表中,并在下次加载网页时预先选择一个位置,这一切都将成为最重要的。
现在随着我的服务器越来越多,这似乎非常不切实际,可能导致许多痛苦的问题,
所以我的问题是:有没有更实用/简单的方法来完成这个?
干杯!
答案 0 :(得分:4)
购买地理位置数据库订阅或使用网络服务,然后根据数据库/服务检查其IP。将世界分成几个区域,并决定哪个服务器应该服务于哪个区域。
根据您查找的代码确定代码,根据原始国家/地区为哪些服务器提供服务。
不要尝试使用网络跃点或traceroute live来决定,这比仅从单个服务器提供服务要慢得多。你是在想这个。
答案 1 :(得分:2)
您可以使用用户IP来确定请求的原始国家/地区,并根据该目标分配一个colo。所以美洲和亚洲去了美国,欧洲和非洲去了英国。可能需要一些测试以确保最合适。 MaxMind有一个免费的GeoIP数据集和软件:http://www.maxmind.com/app/geolitecountry