--- /dev/null
+<?php
+/*
+ * Proxy Detector v0.1 with curl-de-sac customizations
+ * 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)
+ */
+
+class ProxyDetector {
+
+ /**
+ * CONSTRUCTOR
+ * Set defaults...
+ */
+ function ProxyDetector(){
+ }
+
+ /*
+ function exists_in_rbl($remote)
+ verify if an host is into a proxy black list or not
+ */
+ function exists_in_rbl($remote) {
+ $rbls = array('http.dnsbl.sorbs.net', 'misc.dnsbl.sorbs.net');
+
+ if (preg_match("/([0-9]+)\.([0-9]+)\.([0-9]+)\.([0-9]+)/",
+ $remote, $matches)) {
+ foreach ($rbls as $rbl) {
+ $rblhost = $matches[4] . "." . $matches[3] . "." .
+ $matches[2] . "." . $matches[1] . "." . $rbl;
+
+ $resolved = gethostbyname($rblhost);
+ // echo "RBL ".$rblhost."<br>";
+ if ($resolved != $rblhost) {
+ return TRUE;
+ }
+ }
+ }
+ return FALSE;
+ }
+
+ /**
+ * BOOL $proxy = detect( $addr )
+ * Start detection and return TRUE if a proxy server is detected...
+ */
+ function detect($addr){
+ if ($this->exists_in_rbl($addr) == TRUE)
+ return (TRUE);
+
+ //nope, no proxy was logged...
+ return FALSE;
+ }
+}
+
+//init class
+function is_proxy($addr)
+{
+ $proxy = new ProxyDetector();
+
+ //start detect
+ return ($proxy->detect($addr));
+}
+
+?>
\ No newline at end of file
--- /dev/null
+<?php
+/*
+ * curl-de-sac - proxy_check
+ *
+ * Copyright (C) 2014-2015 Matteo Nastasi
+ * mailto: nastasi@alternativeoutput.it
+ * matteo.nastasi@milug.org
+ * web: http://www.alternativeoutput.it
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABLILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details. You should have received a
+ * copy of the GNU General Public License along with this program; if
+ * not, write to the Free Software Foundation, Inc, 59 Temple Place -
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ */
+
+$G_base = "./";
+
+require($G_base . 'Obj/proxy_detector.phh');
+
+function main()
+{
+ GLOBAL $_POST;
+
+ $hea = apache_request_headers();
+
+ print_r($hea);
+
+ $addr = $_POST['conn_ip'];
+
+ if (is_proxy($addr)) {
+ printf("is_proxy=true\n");
+ }
+ else {
+ printf("is_proxy=false\n");
+ }
+}
+
+main();
+?>
\ No newline at end of file