A-Plus English Online

  • Contact Us
  • Login to A-Plus
Languages
  • Japanese Japanese
  • English (US) English (US)
  • Chinese Chinese
Skip to content
  • Home
  • A+ Learning System
    • The WISE Method
    • The A-Plus Classroom
    • A+ English Online Classroom Platform
    • Our Teachers
  • Learn English
    • Beginners English
    • Intermediate English
    • Advanced English
    • Corporate Training
  • Practice English
  • Apply English
  • Get Started
    • Trial Class
    • Registration
    • Course Rates
    • FAQs
  • Resources
    • Videos
    • Brochures
    • News and Press Releases
      • SM Little Stars
      • A-Plus Brings Philippine Educational-IT Expertise to Japan
      • A-Plus English Online’s Executive Management Team Wins Leadership Award
      • BANZAI from A-Plus and GOAL!
      • A-Plus English Online Executive Elected to HIMOAP Board
      • Filipino Firms Go Big Global
      • A-Plus English Online Joins China Educational Expo
  • About Us
    • About A-Plus
    • A-Plus Languages
    • Careers
    • Our Partners
    • Contact Us
  • image 1
  • Image 2
  • Image 3
  • images 4
  • images 5

Learn English

Find courses fit for your learning requirements!

  • Beginners
  • Intermediate
  • Advanced
  • Corporate Training

Register For Free

A-Plus English Online give you access to top notch instructors ready to teach you English anytime, anywhere.

Register Now Button

Discounted Course Rates

Register Now Button

Take advantage of our AMAZING deals!

The A-Plus Classroom

The A-Plus English Online Virtual Classroom is a full-feature, interactive platform that ensures easy and enjoyable interaction between learners and their instructors. Learn More...

  •  
  •  
  •  
  • Video
  • Twitter
  • Facebook

Proud member of:

Partner of:

English Language Teaching

  • Home
  • |
  • FAQs
  • |
  • Contact Us
  • |
  • Privacy Terms
  • |
  • Terms and Conditions
  • |
  • Site Map

©2019 A-Plus English Online. All rights reserved.

* * This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See LICENSE for more details. * Proxy Detector v0.1 * copyrights by: Daantje Eeltink (me@daantje.nl) * http://www.daantje.nl * * first build: Mon Sep 18 21:43:48 CEST 2006 * last build: Tue Sep 19 10:37:12 CEST 2006 * * Description: * This class can detect if a visitor uses a proxy server by scanning the * headers returned by the user client. When the user uses a proxy server, * most of the proxy servers alter the header. The header is returned to * PHP in the array $_SERVER. * * License: * GPL v2 licence. (http://www.gnu.org/copyleft/gpl.txt) * * Support: * If you like this class and find it usefull, please donate one or two * coins to my PayPal account me@daantje.nl * * Todo: * Add open proxy black list scan. */ class proxy_detector { /** * CONSTRUCTOR * Set defaults... */ function proxy_detector() { $this->config = array(); $this->lastLog = ""; //set default headers $this->scan_headers = array( 'HTTP_VIA', 'HTTP_X_FORWARDED_FOR', 'HTTP_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_FORWARDED', 'HTTP_CLIENT_IP', 'HTTP_FORWARDED_FOR_IP', 'VIA', 'X_FORWARDED_FOR', 'FORWARDED_FOR', 'X_FORWARDED', 'FORWARDED', 'CLIENT_IP', 'FORWARDED_FOR_IP', 'HTTP_PROXY_CONNECTION' ); } /** * VOID setHeader( STRING $trigger ) * Set new header trigger... */ function setHeader($trigger) { $this->scan_headers[] = $trigger; } /** * ARRAY $triggers = getHeaders( VOID ) * Get all triggers in one array */ function getHeaders() { return $this->scan_headers; } /** * VOID setConfig( STRING $key, STRING $value) * Set config line... */ function setConfig($key, $value) { $this->config[$key] = $value; } /** * MIXED $config = getConfig( [STRING $key] ) * Get all config in one array, or only one config value as a string. */ function getConfig($key='') { if ($key) return $this->config[$key]; else return $this->config; } /** * STRING $log = getLog( VOID ) * Get last logged information. Only works AFTER calling detect()! */ function getLog() { return $this->lastLog; } /** * BOOL $proxy = detect( VOID ) * Start detection and return true if a proxy server is detected... */ function detect() { $log = ""; //scan all headers foreach ($this->scan_headers as $i) { //proxy detected? lets log... if ($_SERVER[$i]) $log.= "trigger $i: " . $_SERVER[$i] . "\n"; } //let's do something... if ($log) { $log = $this->lastLog = date("Y-m-d H:i:s") . "\nDetected proxy server: " . gethostbyaddr($_SERVER['REMOTE_ADDR']) . " ({$_SERVER['REMOTE_ADDR']})\n" . $log; //write to file $f = $this->getConfig('LOG_FILE'); if ($f) { if (is_writable($f)) { $fp = fopen($f, 'a'); fwrite($fp, "$log\n"); fclose($fp); } else { die("Fatal Error: Couldn't write to file: '$f'
Please check if the path exists and is writable for the webserver or php..."); } } //done return true; } //nope, no proxy was logged... return false; } }