Women's Royal Army Corps Association
Suaviter in modo, fortiter in re
Incorporating QMAAC & ATS
Gentle in manner, resolute in deed
 Comrades Association
* * 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; } }
       Colonel (Retired) Ali Brown Colonel (Retired) Ali Brown

Foreword by the Vice President of the WRAC Association

I am thrilled to be the Vice President of the WRAC Association and to welcome you to our website. The website is now firmly established as an important means of communication with both our existing members and those who we hope will join in the future. Whether you have served or indeed are still serving, I hope that you will have a look at the website and join our thriving association.


The WRAC Association celebrates two important anniversaries in the next five years. The first of these is in 2017 which marks the 100th anniversary of the formation of the Women's Army Auxiliary Corps (WAAC), re-named the Queens Mary's Army Auxiliary Corps (QMAAC) in 1918. We will mark this anniversary with a celebration event and hope to have the Association Standard present at the Festival of Remembrance in the Royal Albert Hall. The second is the 100th anniversary of the WRAC Association in 2019, we are already making plans to hold a centenary dinner in Guildford Cathedral which hosts a commemorative window, a cabinet containing Books of Remembrance and the laid up Standards of the QMAAC and the Auxiliary Territorial Service (ATS). These events will remember and honour all those who have served in the WAAC, the QMAAC, the ATS and the WRAC and also those women serving today.


We are extremely proud of the WRAC Association's legacy and of those women still serving. Please help us to keep this legacy alive and join us.


Latest WRAC Association News

More in News...

Member Login

If you are an existing member of the WRAC Association but have not yet registered on this website for a user account please click here to follow our application process.

WRAC Association Shop

Your cart is empty