Tôi duy trì một trang web với một loạt các tệp có thể tải xuống. Nó hiện được lưu trữ trên máy chủ ở Hoa Kỳ, nhưng gần đây tôi đã mua một máy chủ mới ở Đức. Tôi muốn phản chiếu các tải xuống máy chủ ở Đức và có một tập lệnh PHP trên máy chủ đầu tiên (lưu trữ trang web) để phát hiện tệp phản chiếu nào sẽ được sử dụng dựa trên vị trí của người dùng. Ví dụ: nếu người dùng ở Canada, họ nên tải xuống tệp từ máy chủ hiện tại của tôi ở Hoa Kỳ. Nếu họ ở Pháp, họ sẽ nhận tệp từ Đức, thay vì tải xuống qua Đại Tây Dương. Làm thế nào, sau đó, tôi có thể xác định quốc gia nào họ gần hơn không?Xác định gương gần nhất PHP
Tôi biết về MaxMind GeoIP và đã cài đặt, nhưng điều đó chỉ mang lại cho tôi một quốc gia và AFAIK, không có cách nào để tự động xác định quốc gia nào của hai quốc gia được chọn gần nhất. Tôi cho rằng những gì tôi có thể làm là đi châu lục: có người dùng ở châu Á, châu Âu, châu Phi và Úc nhận nội dung từ Đức và có khách truy cập từ Bắc và Nam Mỹ nhận được tệp từ Hoa Kỳ. , Tôi đang mở lời đề nghị.
Vâng, tôi đoán tôi sẽ đi với ý tưởng ban đầu của tôi về kiểm tra bởi các châu lục. Đối với những người khác muốn làm điều này, đó sẽ là một nơi tốt để bắt đầu. Vấn đề sẽ xảy ra khi tôi có nhiều gương ở châu Âu, nhưng ý tưởng lục địa sẽ phải làm việc ngay bây giờ.
Bạn có thể gọi Google maps qua API google và tính toán khoảng cách giữa quốc gia mà người dùng IP sống và hai đích máy chủ của bạn, dựa trên đó là điểm đến gần nhất, đặt gương tải xuống. Sau đó, bạn chỉ có hai biến tĩnh. Một cho mỗi vị trí máy chủ. –
Tôi đang waaay bên ngoài khu vực của tôi với điều này, nhưng tôi nghĩ * có một cách để sử dụng dns để xử lý này ...? Một chút tìm kiếm mang lại điều này: http://stackoverflow.com/questions/1040545/how-to-dispatch-network-requests-to-the-geographically-closest-server – Aerik
@ Jonasm: không phải là một ý tưởng tồi, nhưng tôi tin rằng bạn không thể chỉ sử dụng API Maps để tính khoảng cách, bạn thực sự phải hiển thị bản đồ, điều này chắc chắn không đạt yêu cầu trong trường hợp này. –