2012-05-15 10 views
5

In meinem Land werden viele Websites zensiert und blockiert und werden stattdessen auf eine bestimmte Seite umgeleitet. Ich weiß nicht, wie sie das genau machen. Aber ist es möglich, programmatisch festzustellen, ob eine Website ist blockiert oder ist nicht gesperrt, ohne die ganze Sache zu laden? Der Grund, warum ich dies tun möchte, ist eine Web-Such-API (vielleicht von Google) und einen Web-Service, der nur Ergebnisse bringt, die nicht blockiert sind.Überprüfung der Website Umleitung, programmgesteuert

Wenn es hilft, den Inhalt der Seite, die stattdessen lädt ist wie folgt:

<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1256"><title>M3-5 
</title></head><body><iframe src="http://10.10.34.34?type=Invalid Site&policy=MainPolicy " style="width: 100%; height: 100%" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0"></iframe></body></html> 

Ich verstehe, dass der Server den Dienst ausgeführt müsste meines Landes IP haben.

Es wäre am besten, wenn es eine Möglichkeit gäbe, dies in PHP oder Python zu tun.

Ich schätze jede Hilfe oder Idee.

+4

Wenn blockierte Seiten eine 301 zurückgeben, könnten Sie vielleicht eine HEAD-Anfrage machen und prüfen, ob es sich um eine 301-Statusmeldung handelt. Wenn es dann ist, können Sie es weiter untersuchen, um zu sehen, ob es die "ungültige Seite" enthält. Dies würde Sie beim Laden aller Entsperrseiten sparen. Einige Websites, die entsperrt sind, haben auch eine 301. – dm03514

+0

Danke. OK, ich habe ein paar blockierte Seiten überprüft. Die meisten von ihnen gaben eine 301 zurück. Eine von ihnen gab eine 302 zurück. Aber facebook.com gibt zum Beispiel nichts zurück (ja, Facebook ist hier blockiert!) Und flickr.com gibt eine 200 zurück. Haben Sie eine Ahnung warum? – Auxiliary

Antwort

3

Dies sollte sowohl in PHP als auch in Python vollständig möglich sein. Im Grunde möchten Sie eine HTTP-Anfrage an die fragliche Seite senden und dann die Antwort analysieren, die Sie erhalten. Werfen Sie einen Blick auf PHP's cURL oder , um zu sortieren, wie diese HTTP-Anfragen ausgegeben werden und wie die Antworten verarbeitet werden.

Sobald Sie die Antwort zurück haben, ist es nur eine Frage der Übereinstimmung des Musters mit einem zuverlässigen Muster für blockierte Seiten. Meine erste Vermutung ist, dass Sie in der Antwort nach <body><iframe src="http://10.10.34.34?type=Invalid Site suchen können, jedoch müssten Sie mehr blockierte Seiten überprüfen, um zu sehen, ob sie alle diese Zeichenfolge enthalten. Sie müssen die Überprüfung möglicherweise auf einen bestimmten regulären Ausdruck erweitern, wenn beispielsweise der IP- oder Typ-Querystring-Parameter von einer blockierten Site zur anderen variiert.

Verwandte Themen