| <?php | |
| require_once("/home/data/httpd/eclipse-php-classes/system/dbconnection.class.php"); # Read-only slave | |
| require_once($_SERVER['DOCUMENT_ROOT'] . "/eclipse.org-common/system/app.class.php"); | |
| class Mirror { | |
| #***************************************************************************** | |
| # | |
| # mirror.class.php | |
| # | |
| # Author: Denis Roy | |
| # Date: 2005-01-24 | |
| # | |
| # Description: Functions and modules related to mirror objects | |
| # | |
| # HISTORY: | |
| # | |
| #***************************************************************************** | |
| # this class will eventually contain mirror information | |
| var $mirror_id = 0; #PK | |
| var $organization = ""; | |
| var $ccode = ""; | |
| var $r30 = 0; | |
| var $update_ip_allow = ""; | |
| var $email = ""; | |
| var $is_internal = 0; | |
| var $is_advertise = 0; | |
| var $date_enabled = ""; | |
| var $create_status = ""; | |
| var $contact = ""; | |
| var $internal_host_pattern = ""; | |
| var $last_verified = ""; | |
| function getMirrorID() { | |
| return $this->mirror_id; | |
| } | |
| function getOrganization() { | |
| return $this->organization; | |
| } | |
| function getCCode() { | |
| return $this->ccode; | |
| } | |
| function getR30() { | |
| return $this->r30; | |
| } | |
| function getUpdateIPAllow() { | |
| return $this->update_ip_allow; | |
| } | |
| function getEMail() { | |
| return $this->email; | |
| } | |
| function getIsInternal() { | |
| return $this->is_internal; | |
| } | |
| function getIsAdvertise() { | |
| return $this->is_advertise; | |
| } | |
| function getDateEnabled() { | |
| return $this->date_enabled; | |
| } | |
| function getCreateStatus() { | |
| return $this->CreateStatus; | |
| } | |
| function getContact() { | |
| return $this->Contact; | |
| } | |
| function getInternalHostPattern() { | |
| return $this->internal_host_pattern; | |
| } | |
| function getLastVerified() { | |
| return $this->last_verified; | |
| } | |
| function setMirrorID($_mirror_id) { | |
| $this->mirror_id = $_mirror_id; | |
| } | |
| function setOrganization($_organization) { | |
| $this->organization = $_organization; | |
| } | |
| function setCCode($_ccode) { | |
| $this->ccode = $_ccode; | |
| } | |
| function setR30($_r30) { | |
| $this->r30 = $_r30; | |
| } | |
| function setUpdateIPAllow($_update_ip_allow) { | |
| $this->update_ip_allow = $_update_ip_allow; | |
| } | |
| function setEMail($_email) { | |
| $this->email = $_email; | |
| } | |
| function setIsInternal($_is_internal) { | |
| $this->is_internal = $_is_internal; | |
| } | |
| function setIsAdvertise($_is_advertise) { | |
| $this->is_advertise = $_is_advertise; | |
| } | |
| function setDateEnabled($_date_enabled) { | |
| $this->date_enabled = $_date_enabled; | |
| } | |
| function setCreateStatus($_create_status) { | |
| $this->CreateStatus = $_create_status; | |
| } | |
| function setContact($_contact) { | |
| $this->Contact = $_contact; | |
| } | |
| function setInternalHostPattern($_internal_host_pattern) { | |
| $this->internal_host_pattern = $_internal_host_pattern; | |
| } | |
| function setLastVerified($_last_verified) { | |
| $this->last_verified = $_last_verified; | |
| } | |
| function selectCountryCodeByIP($_IP) { | |
| $App = new App(); | |
| $rValue = "xx"; # no ccode info for this IP | |
| if($_IP != "") { | |
| $ipnum = sprintf("%u", ip2long($_IP)); | |
| $dbc = new DBConnection(); # Read-only, to slave! | |
| $dbh = $dbc->connect(); | |
| $sql = "SELECT ccode FROM geoip WHERE $ipnum BETWEEN start AND end"; | |
| $result = mysql_query($sql, $dbh); | |
| if($myrow = mysql_fetch_array($result)) { | |
| $rValue = $myrow['ccode']; | |
| } | |
| $dbc->disconnect(); | |
| $dbh = null; | |
| $dbc = null; | |
| $result = null; | |
| $myrow = null; | |
| } | |
| return $rValue; | |
| } | |
| /** @author droy | |
| * @since version - Apr 16,2007 | |
| * @param String _IP IP address to examine | |
| * @return Boolean IP is a valid public IP | |
| * | |
| */ | |
| function isValidPublicIP($_IP) { | |
| if(!preg_match('/^\d+\.\d+\.\d+\.\d+/', $_IP)) { | |
| return false; | |
| } | |
| if (substr_count($_IP, '.') > 3) { | |
| return false; | |
| } | |
| if (strpos($_IP, '.') == 0 || strrpos($_IP, '.') == (strlen($_IP)-1)) { | |
| return false; | |
| } | |
| $parts = explode('.', $_IP); | |
| foreach ($parts as $part) { | |
| if ($part > 255) { | |
| return false; | |
| } | |
| } | |
| switch($parts[0]) { | |
| case 0: return false; break; | |
| case 10: return false; break; | |
| case 127: return false; break; | |
| case 172: | |
| if($parts[1] >= 16 && $parts[1] <= 32) { | |
| return false; | |
| } | |
| break; | |
| case 192: | |
| if($parts[1] == 168) { | |
| return false; | |
| } | |
| break; | |
| } | |
| if($parts[0] > 223) { | |
| return false; | |
| } | |
| return true; | |
| } | |
| } | |
| ?> |