2009-03-07 8 views

Répondre

9

ipinfodb fournissent des données de géolocalisation gratuites pour MySQL. Avec un traducteur de base de données simple, vous pouvez le mettre dans une base de données différente, puisque la structure de la table est simple. Ils fournissent également des données au format CSV, qui seront plus faciles à importer dans un moteur de base de données différent.

Les données sont basées sur la version gratuite de MaxMind, et elle est mise à jour tous les mois. Ils fournissent également une API gratuite, si vous ne voulez pas stocker les données sur votre serveur. La précision est correcte et suffisante pour une utilisation normale du site Web.

+9

ils ne fournissent plus le db –

8

Si vous avez besoin de trouver l'emplacement de l'utilisateur actuel en fonction de leur adresse IP, puis vous pouvez essayer l'API Google Geolocation, en particulier google.loader.ClientLocation.

Vérifiez les docs de l'API Google pour plus d'informations: http://code.google.com/apis/ajax/documentation/#ClientLocation

+1

+1 parce que c'est ça, mais dans mon expérience, il a souvent aucune idée où vous sommes de. Au moins, il vous dit quand il ne sait pas. Semble mieux identifier les choses résidentielles que commerciales. –

13

Je l'ai utilisé http://www.maxmind.com/app/geolitecity. C'est une version moins exacte de leur base de données payante. La base de données gratuite prétend être "plus de 99,5% au niveau du pays et 79% au niveau de la ville pour les Etats-Unis dans un rayon de 25 miles". Vous pouvez voir leur précision détaillée au http://www.maxmind.com/app/geolite_city_accuracy.

Les données sont présentées sous la forme d'un fichier CSV contenant le bloc IP de départ, le bloc IP de fin et l'emplacement. Il est assez facile de charger dans sqlserver.

APIs en C, C#, PHP, Java, Perl et la version gratuite, GeoLite, a une version IPv6 en plus du format CSV téléchargeable.

0

Voir la base de données ici -

http://myip.ms/info/cities_sql_database/World_Cities_SQL_Mysql_Database.html

Ils ont des pays/villes ddatabase pour Microsoft Sql Server. Voici le code -

CREATE TABLE countries (
    countryID varchar(3) NOT NULL, 
    countryName varchar(52) NOT NULL, 
    localName varchar(45) NOT NULL, 
    webCode varchar(2) NOT NULL, 
    region varchar(26) NOT NULL, 
    continent varchar(15) NOT NULL, 
    latitude float NOT NULL, 
    longitude float NOT NULL, 
    surfaceArea float NOT NULL, 
    population int NOT NULL, 
    PRIMARY KEY (countryID), 
    UNIQUE (webCode), 
    UNIQUE (countryName) 
); 


CREATE TABLE cities (
    cityID int NOT NULL, 
    cityName varchar(50) NOT NULL, 
    stateID int NOT NULL, 
    countryID varchar(3) NOT NULL, 
    latitude float NOT NULL, 
    longitude float NOT NULL, 
    PRIMARY KEY (cityID), 
    UNIQUE (countryID,stateID,cityID) 
); 
0

Cochez cette base de villes du monde libre http://www.sudostuff.com/world-cities-database-8.html

Comprend la ville, la région et le pays.

Fichier au format MySQL à télécharger avec trois tables, pays, région et ville. schéma Pays

CREATE TABLE IF NOT EXISTS `country` (
`countryId` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT, 
`code` VARCHAR(5) DEFAULT NULL, 
`name` VARCHAR(150) DEFAULT NULL, 
PRIMARY KEY (`countryId`) 
) ENGINE=InnoDB; 

INSERT INTO `country` (`countryId`, `code`, `name`) VALUES(1, 'ad', 'andorra'); 
INSERT INTO `country` (`countryId`, `code`, `name`) VALUES(2, 'ae', 'united arab emirates'); 
INSERT INTO `country` (`countryId`, `code`, `name`) VALUES(3, 'af', 'afghanistan'); 
INSERT INTO `country` (`countryId`, `code`, `name`) VALUES(4, 'ag', 'antigua and barbuda'); 
INSERT INTO `country` (`countryId`, `code`, `name`) VALUES(5, 'ai', 'anguilla'); 
Questions connexes