Probleme mit Nomination - funktioniert nicht mehr

Hi,
auf meinem Server läuft ein kleines Programm, dass anhand der Adresse die Längen- und Breitengrade ausgibt:

<?php
$agent=$_SERVER['HTTP_USER_AGENT'];
$opts = array('http'=>array('header'=>"User-Agent: ".$agent."\r\n"));
$context = stream_context_create($opts);
$adresse="Unter den Linden 1, 10117 Berlin";
$pos = file_get_contents('https://nominatim.openstreetmap.org/search?format=json&accept-language=de&q='.rawurlencode($adresse), false, $context);
$pos2 = json_decode($pos);
echo "<pre>";
print_r ($pos2);
?>

Viele Jahre funktionierte dies immer einwandfrei. Als ich vor einigen Tagen die Routine wieder aufrief, erfolgte keine Ausgabe. Wenn ich den Befehl jedoch direkt über den Browser aufrufe

https://nominatim.openstreetmap.org/search?format=json&accept-language=de&q=Unter den Linden 1, 10117 Berlin

, erhalte ich ein Ergebnis. Ich hatte vor vielen Jahren schon einmal dasselbe Problem. Damals glaubte man, dass es an vielen Aufrufen lag. Aber ich habe diese Routine selten aufgerufen. Oder könnte es an meinem Heimcomputer liegen? Die gesamte Partition habe ich hier vor einigen Tagen mit meinem Backup Programm wiederhergestellt.

Könnt Ihr mir helfen?

… und im error.log deines Servers und im HTML Quelltext der Response ist auch kein Hinweis zu sehen?

Die Anfrage sollte einen individuellen Referrer oder User Agent enthalten. Also nicht einfach den einkommenden User-Agent kopieren, sondern einen setzen, der das Skript selber identifiziert.

1 Like

Vielen Dank für Eure Antworten.

Ich habe den error-log eingeschaltet und die folgende Meldung bekommen:

Warning: file_get_contents(https://nominatim.openstreetmap.org/search?format=json&accept-language=de&q=Unter%20den%20Linden%201%2C%2010117%20Berlin): failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in /var/www/webxxxxx/html/test.php on line 8

xxxxx = 5 Stellige Zahl meiner Web Adresse

So wie es aussieht, bin ich wirklich gesperrt. Aber wieso und wie lange? Würde ein individueller User Agent oder Refferer helfen? Wenn ja, wo könnte ich ein Beispiel oder einen funktionierenden Script finden?

$opts = array('http'=>array('header'=>"User-Agent: joergi's spezieller Addresssucher\r\n"));

Mehr Änderung braucht es nicht, damit es wieder geht.

1 Like

Ja, vielen Dank. Es funktioniert wieder mit der Änderung :slight_smile: