Holen Sie sich den Standort des Benutzers in Flask

Steve

Ich möchte den Standort des Benutzers ermitteln. Wenn ich den folgenden Code auf meinem lokalen Computer teste, wird die richtige Position zurückgegeben. Versucht, den Standort mit VPN zu ändern, und alles hat auch richtig funktioniert.
app.py:

@app.route('/')
def index():
    url = 'http://freegeoip.net/json'
    r = requests.get(url)
    j = json.loads(r.text)
    city = j['city']

    print(city)

Wenn ich meine Site jedoch mit demselben Code auf Pythonany laufen lasse, wird immer eine falsche Stadt zurückgegeben, unabhängig davon, von wo aus ich eine Verbindung herstelle. Gibt es stattdessen den Standort des Servers zurück? Wie kann ich den richtigen Standort für jeden Benutzer ermitteln?

Samu

Sie verwenden Ihre Server-IP für die Geolokalisierung. Wenn Sie diesen bestimmten Endpunkt besuchen, werden die Client-IP-Adressen verwendet. Wenn Sie also Ihre App für Pythonanywhere bereitgestellt haben, wird der Client für diesen Endpunkt zum Server.

Wenn Sie das lokal auf Ihrem PC ausgeführt haben, haben Sie den API-Endpunkt unter Verwendung Ihrer IP-Adresse angefordert. Wenn Sie also zu VPN gewechselt sind, hat sich auch Ihre IP-Adresse geändert.

Um Ihren aktuellen Code zu korrigieren, müssen Sie die IP-Adresse des Clients an den freegeoip.net/jsonEndpunkt übergeben. Versuche dies:

from flask import request

@app.route('/')
def index():
    url = 'http://freegeoip.net/json/{}'.format(request.remote_addr)
    r = requests.get(url)
    j = json.loads(r.text)
    city = j['city']

    print(city)

Beachten Sie jedoch, dass dieser API-Endpunkt veraltet ist und am 1. Juli 2018 nicht mehr funktioniert. Weitere Informationen finden Sie unter: https://github.com/apilayer/freegeoip#readme. Möglicherweise möchten Sie den neuen Dienst verwenden - Meine Lösung gilt weiterhin für die neue API.

In einigen Fällen (wie in Pythonanywhere) befindet sich möglicherweise ein Proxyserver vor Ihrer Web-App, wodurch der Server request.remote_addrunbrauchbar wird. In diesem Fall sollten Sie den X-Forwarded-ForHeader verwenden. Denken Sie jedoch daran, den richtigen Wert zu verwenden. Schauen Sie sich diese gute Lösung für weitere Informationen an .

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Holen Sie sich den Standort des Benutzers mit hoher Geschwindigkeit

Holen Sie sich den Standort des Benutzers für das Flattern des Webs

Holen Sie sich den Standort des Benutzers von Ubuntu des Microsoft Exchange-Servers

Holen Sie sich den Standort des Benutzers in der Android API 23

Holen Sie sich den Standort des Benutzers mit Facebook Javascript SDK

Holen Sie sich den Namen des Benutzers in yii2

Html Holen Sie sich den lokalen Verzeichnispfad des Benutzers

Swift 2 Mapkit Holen Sie sich die Stadt vom Standort des Benutzers

Holen Sie sich den Standort des Benutzers über die IP, den Online-Dienst mit php cURL und json verwendet wird

Holen Sie sich den genauen Standort in iOS

Bestimmen Sie den Standort des Benutzers und übersetzen Sie Fehlermeldungen

Holen Sie sich den benutzerdefinierten Metadatenwert des Benutzers und aktualisieren Sie ihn in WooCommerce-Bestellungen

So legen Sie in Google Maps Flutter den dynamischen Standort oder den Standort des Benutzers auf Kreis fest und zeigen Markierungen an, die sich nur innerhalb des Kreises befinden

Holen Sie sich den Standort der Seaborn-Legende

Holen Sie sich den aktuellen Standort schnell und einmal in Android

Holen Sie sich den aktuellen Standort auf iOS

Holen Sie sich den neuesten Standort vieler Benutzer

Holen Sie sich den Standort von Alexa Skills Kit (ASK)

Holen Sie sich den aktuellen Standort in Xamarin Droid

Osmnx: Holen Sie sich den Standort per GPS-Koordinate

Holen Sie sich den aktuellen Standort alle n Minuten in Android

Zentrieren Sie eine MapView auf den Standort des Benutzers

So verfolgen Sie schnell den Standort des Benutzers im Hintergrund

So erhalten Sie den aktuellen Standort des Benutzers in Android

Holen Sie sich den geolokalisierten Ländernamen des Benutzers in Woocommerce 3

FBSDK Holen Sie sich den Freund des Benutzers, der die App autorisiert hat

Holen Sie sich den Schlüssel des Benutzers aus der Firebase-Datenbank

Holen Sie sich den Vornamen des aktuellen Benutzers Cloud Firebase schnell

Holen Sie sich den Namen und das Bild des Benutzers, der einen Kommentar hinterlässt

TOP Liste

  1. 1

    Wie aktualisiere ich ein Feld in einer Raumdatenbank mit einem Repository und einem Ansichtsmodell?

  2. 2

    Wie füge ich mehrere Spalten in einer Spalte mit derselben Tabelle in SQL Server zusammen?

  3. 3

    Wie kann man Gitterquadrate dazu bringen, die Farbe zu ändern?

  4. 4

    Ich kann nicht verstehen, wie man Go-Code in mehreren Dateien kompiliert

  5. 5

    Zählen Sie die Vorkommen jedes Werts in einem Tupel in Python

  6. 6

    Gibt es eine sauberere Möglichkeit, Konstruktorargumente und Instanzeigenschaften einer Klasse in Typescript zu definieren?

  7. 7

    So implementieren Sie Pushwoosh mit ionic 2

  8. 8

    Wie wird der Wert im Dropdown-Menü basierend auf den ausgewählten Daten / IDs angezeigt?

  9. 9

    Tomcat - Leiten Sie den alten Kontextstamm zum neuen Kontextstamm um

  10. 10

    Ändern Sie den Knotenpfad in das aktuelle Verzeichnis

  11. 11

    So erstellen Sie ein Array von Objekten aus zwei Arrays von Objekten mit einem gemeinsamen Schlüssel - JavaScript

  12. 12

    Rufen Sie die ID aus der Datagrid-Ansicht ab und zeigen Sie die Daten in Textfeldern einem anderen Formular an

  13. 13

    base js: Wie füge ich einem Objekt eine Eigenschaft auf die 'alte' Weise hinzu?

  14. 14

    Ersetze einen Teil einer Zeichenfolge durch eine Pandas-Spalte als Muster

  15. 15

    Blättern Sie auf Radio Click zur Abschnitts-ID

  16. 16

    CBCentralManager wird nach dem Verbinden neu gestartet

  17. 17

    Scherz, wie man eine Funktion verspottet, die von einer verspotteten Funktion zurückgegeben wird

  18. 18

    django-allauth Empfängersignal zum Hinzufügen einer Gruppenberechtigung zum Benutzer bei der Anmeldung

  19. 19

    Tic Tac Toe-Spiel im React-Reset-Button funktioniert nicht

  20. 20

    AQL: Teilweise Übereinstimmung in einer Reihe von Zeichenfolgen

  21. 21

    So summieren Sie die Werte zweier Tabellen und gruppieren sie nach Datum

heißlabel

Archiv