blob: 5d92e7f836c9a8038c0894d69a99706361ae1502 [file] [log] [blame]
<?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;
}
}
?>