J'ai ce code, qui recherche essentiellement une adresse IP quand un utilisateur frappe le http://domain.tld/stats/1.gif et utilise la bibliothèque geoip-lite pour retourner lat et long sur une carte raphael.geoip-lite formatage de chareurs
var http = require('http'),
util = require('util'),
static = require('node-static'),
faye = require('faye'),
url = require('url'),
geoip = require('geoip-lite');
function LiveStats(options) {
if (! (this instanceof arguments.callee)) {
return new arguments.callee(arguments);
}
...
} else if (location.pathname == '/stats/1.gif' && request.method == 'GET') {
var origin;
response.writeHead(200, {
'Content-Type': 'image/gif'
});
origin = /\/(.*)\.gif/.exec(request.url);
if (origin) {
var ip = request.connection.remoteAddress;
var geo = geoip.lookup(ip);
console.log(geo);
self.bayeux.getClient().publish('/stat', {
title: 'user'
, latitude: geo.ll[0]
, longitude: geo.ll[1]
, ip: ip
});
}
response.end("OK");
} else {
file.serve(request, response);
}
});
});
return server;
};
module.exports = LiveStats;
console.log (geo);
retours par exemple:
{ range: [ 1391911936, 1391915007 ],
country: 'FR',
region: 'A9',
city: 'N?mes',
ll: [ 43.8333, 4.35 ] }
où la mise en forme de la ville est tout faux, comment dois-je corriger cela, pour qu'il imprime Nîmes
Un grand merci
je vais essayer avec geoip, merci – khinester
j'ai essayé de télécharger la base de données du site et l'ai mis dans le répertoire lib/mais je continue à obtenir: ----------------------- - Exception: Erreur: Base de données de ville non valide undefined ------------------------ pouvez-vous fourchette mon code https://github.com/nkhine/livestats et voir si vous pouvez le faire fonctionner? – khinester
Cette erreur signifie qu'il peut trouver le fichier, je pense (sinon vous obtiendrez "Erreur d'ouverture du fichier" - est-il possible que vous avez téléchargé le fichier mais ne l'avez pas décompressé? Le fichier de Maxmind est gzippé, vous avez donc besoin –