parent
13204f395b
commit
6788efa5ce
@ -0,0 +1,64 @@ |
|||||||
|
<?php |
||||||
|
// |
||||||
|
// "$Id$" |
||||||
|
// |
||||||
|
// Mirror selection functions (depends on GeoIP PECL interface). |
||||||
|
// |
||||||
|
// Contents: |
||||||
|
// |
||||||
|
// mirror_closest() - Return the closest mirror to the current IP. |
||||||
|
// |
||||||
|
|
||||||
|
// |
||||||
|
// List of download servers... |
||||||
|
// |
||||||
|
|
||||||
|
$MIRRORS = array( |
||||||
|
"http://ftp.easysw.com/pub" => array("California, USA", 37.7898, -122.3942), |
||||||
|
"http://ftp2.easysw.com/pub" => array("New Jersey, USA", 40.4619, -74.3561), |
||||||
|
"http://ftp.funet.fi/pub/mirrors/ftp.easysw.com/pub" => array("Espoo, Finland", 60.2167, 24.6667), |
||||||
|
"http://ftp.rz.tu-bs.de/pub/mirror/ftp.easysw.com/ftp/pub" => array("Braunschweig, Germany", 52.2667, 10.5333), |
||||||
|
); |
||||||
|
|
||||||
|
|
||||||
|
// |
||||||
|
// 'mirror_closest()' - Return the closest mirror to the current IP. |
||||||
|
// |
||||||
|
|
||||||
|
function // O - Closest mirror |
||||||
|
mirror_closest() |
||||||
|
{ |
||||||
|
global $_SERVER, $MIRRORS; |
||||||
|
|
||||||
|
|
||||||
|
// Get the current longitude for the client... |
||||||
|
$current = geoip_record_by_name($_SERVER["REMOTE_ADDR"]); |
||||||
|
$lon = $current["longitude"]; |
||||||
|
|
||||||
|
// Loop through the mirrors to find the closest one, currently just using |
||||||
|
// the longitude... |
||||||
|
$closest_mirror = ""; |
||||||
|
$closest_distance = 999; |
||||||
|
|
||||||
|
reset($MIRRORS); |
||||||
|
foreach ($MIRRORS as $mirror => $data) |
||||||
|
{ |
||||||
|
$distance = abs($lon - $data[2]); |
||||||
|
if ($distance > 180) |
||||||
|
$distance = 360 - $distance; |
||||||
|
|
||||||
|
if ($distance < $closest_distance) |
||||||
|
{ |
||||||
|
$closest_mirror = $mirror; |
||||||
|
$closest_distance = $distance; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
return ($closest_mirror); |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
// |
||||||
|
// End of "$Id$". |
||||||
|
// |
||||||
|
?> |
Loading…
Reference in new issue