2012-04-14 13 views
0

Ich habe eine Datei auf dem Server, zum Beispiel "file.txt". Es kann von verschiedenen Domänen angefordert werden.Track-Datei-Anfrage Referrer

Gibt es eine Möglichkeit zu verfolgen, von welcher Domäne diese Datei angefordert wurde, und diese Daten irgendwo speichern?

Vielen Dank.

+1

was meinst du mit "von verschiedenen Domains angefordert"? –

+0

[Was haben Sie versucht] (http://mattgemamm.com/2008/12/08/what-have-you-tried/)? – ghoti

Antwort

1

Ich glaube nicht, Domain-Namen die beste Option sein würde .. Ich würde empfehlen Ihnen zu IP address for Einschränkungen bleiben

Sie auch $_SERVER ['HTTP_REFERER'] verwenden können, um die genaue Skript aufrufen Ihre Datei oder über überprüfen Ihre Datei zu laden

Versuchen

$allowedReferer = array (
     "http://me.test.com/xxx/bbb/zmy.php?", 
     "https://me.why.com/xxx/bbb/zmy.axpx" , 
     "http://localhost/lab/stockoverflow/" 
); 

$allowedIP = array (
     "192.168.0.1", 
     "192.168.0.1" , 
     "::1" 
); 

$file = "file.pdf"; // its can also be a value form $_GET 

if (! in_array (quickIP(), $allowedIP)) { 
    die ("IP LockDown : " . quickIP()); 
} 

if (! isset ($_SERVER ['HTTP_REFERER'])) { 
    die ("Missing Referer"); 
} 

if (! in_array ($_SERVER ['HTTP_REFERER'] , $allowedReferer)) { 
    die ("Referer Lockdown " . $_SERVER ['HTTP_REFERER']); 
} 

$array = parse_url ($_SERVER ['HTTP_REFERER']); 

header ('Content-type: application/pdf'); 
header ('Content-Disposition: attachment; filename="' . $file . '"'); 
readfile ($file); 

function quickIP() { 
    return (empty ($_SERVER ['HTTP_CLIENT_IP']) ? (empty ($_SERVER ['HTTP_X_FORWARDED_FOR']) ? $_SERVER ['REMOTE_ADDR'] : $_SERVER ['HTTP_X_FORWARDED_FOR']) : $_SERVER ['HTTP_CLIENT_IP']); 
} 
1

Ja, holen Sie sich den Referer und speichern Sie ihn. Die Variable ist $ _SERVER ['HTTP_REFERER']

Sie haben zwei Möglichkeiten. Entweder schreiben Sie ein PHP-Skript, das die Datei bereitstellt (http://teddy.fr/blog/how-serve-big-files-through-php) und speichern den Referer dafür mit PHP.

Alternativ speichert der Webserver ein Protokoll aller Dateien, auf die zugegriffen wird. Sie können dieses (strukturierte) Protokoll auf Zugriffe auf Ihre Datei scannen und die Referrer herausholen. Es gibt mehrere Log-Analyse-Projekte, wie AWStats.

+0

hier ist ein Skript, das es tut: http://www.gidforums.com/t-497.html – j13r