<?php
class PUGClass {
private $chan_regs = array ('#pugbot' => 'na','#urtpickup' => 'eu','#urtpickup.ts' => 'eu','#pugbot-priv' => 'na','#urtpickup.admins' => 'eu','#pugbot.eu' => 'eu','#pugbot.eu.ts' => 'eu' );
public function ip2region($ip) {
// split up the IP into 4 parts (octets)
$playerip_array = explode(".",$ip);
$ip1 = $playerip_array[0];
$ip2 = $playerip_array[1];
$ip3 = $playerip_array[2];
$ip4 = $playerip_array[3];
// set ip key
$playeripkey = (($ip1*256+$ip2)*256+$ip3)*256 + $ip4;
// geolcation
$geolocation = mysql_fetch_array(mysql_query("SELECT * FROM `ip_group_city` where `ip_start` <= '$playeripkey' order by ip_start desc limit 1;"));
$ccode = $geolocation['country_code'];
return $this->ccode2region($ccode);
}
public function ip2channel($ip) {
$region = $this->ip2region($ip);
$channel = $this->region2channel($region);
return $channel;
}
public function region2channel($region) {
switch ($region) {
case "au" :
$channel = "pugbot.au";
break;
case "na" :
$channel = "pugbot";
break;
case "eu" :
$channel = "pugbot.eu";
break;
case "sa" :
$channel = "pugbot.sa";
break;
default :
$channel = "pugbot";
break;
}
return $channel;
}
public function ccode2region($ccode) {
switch ($ccode) {
case "AU":
$reg_pref = "na";
break;
case "US":
$reg_pref = "na";
break;
case "CA":
$reg_pref = "na";
break;
case "MX":
$reg_pref = "na";
break;
case "BR":
$reg_pref = "na";
break;
case "CO":
$reg_pref = "na";
break;
case "NZ":
$reg_pref = "na";
break;
case "VE":
$reg_pref = "na";
break;
case "UY":
$reg_pref = "na";
break;
case "PE":
$reg_pref = "na";
break;
case "CL":
$reg_pref = "na";
break;
case "AR":
$reg_pref = "na";
break;
case "HN":
$reg_pref = "na";
break;
case "NL":
$reg_pref = "eu";
break;
case "PT":
$reg_pref = "eu";
break;
case "ES":
$reg_pref = "eu";
break;
case "RO":
$reg_pref = "eu";
break;
case "DK":
$reg_pref = "eu";
break;
case "DE":
$reg_pref = "eu";
break;
case "GB":
$reg_pref = "eu";
break;
case "SE":
$reg_pref = "eu";
break;
case "NO":
$reg_pref = "eu";
break;
case "RU":
$reg_pref = "eu";
break;
case "TR":
$reg_pref = "eu";
break;
case "FR":
$reg_pref = "eu";
break;
case "IT":
$reg_pref = "eu";
break;
case "CZ":
$reg_pref = "eu";
break;
case "HK":
$reg_pref = "na";
break;
case "NC":
$reg_pref = "na";
break;
case "CN":
$reg_pref = "na";
break;
default :
$reg_pref = "na";
break;
}
return $reg_pref;
}
public function get_region($chan, $ccode) {
//if (isset($this->chan_regs[$chan])) {
// return $this->chan_regs[$chan];
//} else {
return $this->ccode2region($ccode);
//}
}
}
?>