it-swarm.com.de

Bestes node.js-Modul zum Finden des Standorts?

Ich hatte einige node.js-Module gefunden, um die Informationen über den Clientstandort und das Netzwerk mithilfe der IP-Adresse zu finden.

Anforderungen:

  1. Standort - Land, Stadt, Bundesland, Breitengrad, Längengrad usw.

  2. Netzwerk - Internetdienstanbieter, Art der Internetverbindung, Internetgeschwindigkeit usw.

  3. Datengenauigkeit - maximale Möglichkeit.

Hinweis: Auf der Suche nach einer serverseitigen Lösung.

Die oben genannten Module verwenden maxmind data . Und ich hatte auch über die maxmind Datengenauigkeit gelesen.

Ich bin wenig verwirrt, wenn ich die obigen node.js-Module auswähle, und ich möchte wissen, dass es bessere node.js-Frameworks gibt, um Informationen zu finden, die meinen Anforderungen entsprechen, oder andere Sprach-Plugins, die auf node.js portierbar sind.

Jede Idee wird großartig sein.

47
karthick

Die Verwendung einer IP-basierten Geolokalisierung ist möglich, jedoch nicht sehr genau. Daher empfehle ich Ihnen, über einen hybriden Ansatz nachzudenken, z. B. den Standort des Benutzers über die HTML5-Geolocation-API im Browser zu ermitteln und bei Bedarf auf die Serverseite zurückzugreifen.

Ich habe mir die beiden am häufigsten verwendeten Geoip/-Location-Module für node.js angesehen. Beide verwenden die von MaxMind bereitgestellten Datensätze. AFAIK, Sie müssen diese Datenbanken manuell auf dem neuesten Stand halten, was ein deutlicher Wermutstropfen ist. Sie können also einen kleinen Synchronisierungsdienst/ein kleines Synchronisierungsskript schreiben, mit dem die Datenbank einmal pro Monat aktualisiert wird. (Weitere Informationen zur kostenlosen MaxMinds-Lösung finden Sie hier ).

kuno/GeoIP ist eine GeoIP-Bindung, daher wird im Kern die libGeoIP C-Bibliothek verwendet. Dies ist in Ordnung, aber möglicherweise nicht so portabel wie die reine JavaScript-Implementierung bluesmoon/node-geoip bietet. Beides ist in Ordnung und es liegt an Ihnen, welche Bibliothek Sie bevorzugen. In Bezug auf die Leistung müssen Sie einige Benchmaker machen (wenn Ihnen dieses Thema wichtig ist)… Es gibt keine allgemeine Antwort auf die Frage, welcher Modultyp (C-Bindung/native) schneller sein wird.

Wenn Sie bereit sind, ein paar Dollar auszugeben, sollten Sie auch MaxMinds Web Service in Erwägung ziehen. Dies ist eine einfache REST API und der genaueste Weg Die Dokumentation ist ziemlich gut - es ist also kein Problem, damit anzufangen.

46
dom

Wenn Sie die IP erhalten, können Sie jederzeit einen externen Dienst anrufen, um die Standortinformationen abzurufen, z. B. freegeoip.net und das Anforderungsmodul zu verwenden.

(ip, location) ->
  url = 'http://freegeoip.net/json/' + ip
  request.get url, (error, response, body) ->
    if !error && response.statusCode == 200
      data = JSON.parse body
      location data

Für die Netzwerkinfos habe ich keine Lösung, aber ich suche auch eine.

29
brnrd

Sie können alle gewünschten Informationen über meine API abrufen unter http://ipinfo.io API:

$ curl ipinfo.io
{
  "ip": "67.188.232.131",
  "hostname": "c-67-188-232-131.hsd1.ca.comcast.net",
  "city": "Mountain View",
  "region": "California",
  "country": "US",
  "loc": "37.4192,-122.0574",
  "org": "AS7922 Comcast Cable Communications, Inc.",
  "postal": "94043"
}

Es unterstützt JSONP und CORS, sodass Sie es entweder server- oder clientseitig verwenden können. Weitere Informationen finden Sie unter http://ipinfo.io/developers

11
Ben Dowling