有没有人用过这个,我需要免费的国家,城市,sqlserver的IP数据库
9 回答
我用过http://www.maxmind.com/app/geolitecity。这是他们付费数据库的不太精确的版本。免费数据库声称“在 25 英里半径范围内,美国在国家层面上超过 99.5%,在城市层面上超过 79%”。您可以在http://www.maxmind.com/app/geolite_city_accuracy查看详细信息。
数据显示为包含起始 IP 块、结束 IP 块和位置的 CSV 文件。加载到 sqlserver 很容易。
除了可下载的 CSV 格式之外,C、C#、PHP、Java、Perl 和免费版本 GeoLite 中的 API 还具有 IPv6 版本。
ipinfodb为 MySQL 提供免费的地理位置数据。使用简单的数据库转换器,您可以将其放入不同的数据库中,因为表结构很简单。它们还提供 CSV 格式的数据,这将更容易导入到不同的数据库引擎。
数据基于 MaxMind 免费版,每月更新。如果您不想将数据存储在服务器中,它们还提供免费的 API。准确性不错,足以满足正常的网站使用。
如果您需要根据他们的 IP 地址找到当前用户的位置,那么您可以尝试使用 Google Geolocation API,特别是google.loader.ClientLocation
.
查看 Google API 文档了解更多信息: http ://code.google.com/apis/ajax/documentation/#ClientLocation
您也可以从这里找到 Mysql 数据库...
https://github.com/baraskar/Worlds-Country-State-and-City-Mysql-Database
建议随时欢迎...
检查这个免费的世界城市数据库http://www.sudostuff.com/world-cities-database-8.html
包括城市、地区和国家。
要下载的 MySQL 格式文件,包含三个表,国家、地区和城市。 国家模式
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');
不完全适用于 SQL Server,而是适用于 MySQL,我建议您查看这个 GitHub 存储库:
Geonames 是免费数据,但数据很多。您需要 DBA 来清理数据。但根据您的要求清理负载数据是一次性的工作。在 zip 解压后,我最终得到了 1.3 GB 的文件大小,并将这些数据加载到 DB 还需要一个功能强大的硬件。
maxmind 数据非常旧,他们已停止更新提供的免费数据
然后有许多付费数据源,但列出了我曾经使用过的来自http://www.worldcitiesdatabase.com的世界城市数据库中成本最低且价格合理的数据源。
然后您也可以查看 maxmind 付费数据服务,但它们非常昂贵,除非您的预算非常好。
希望这可以帮助。
在此处查看数据库 -
http://myip.ms/info/cities_sql_database/World_Cities_SQL_Mysql_Database.html
他们有 Microsoft Sql Server 的国家/城市数据库。这里代码 -
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)
);