IP 和 国家 的对照表——以及在 PHP、MySQL 应用中的使用方法
作者:郑凯
好像是在 PHP.net 到处乱转找到的这个地方:[url=http://ip-to-country.webhosting.info/]IP-to-Country.com[/url],以前只知道 [url=http://www.maxmind.com/]Maxmind[/url],虽然后者提供的更全面(除了国家还有美国的州级、城市级、ISP级 IP 表),可是要收费的,而 :[url=http://ip-to-country.webhosting.info/]IP-to-Country.com[/url] 非但不收费,好像更新也很勤(或许是凑巧吧,我第一次访问的时候看到更新日期是昨天的),数据库下载在这里:[url]http://ip-to-country.webhosting.info/downloads/ip-to-country.csv.zip[/url]
如果 MySQL 新手请继续往下看,否则可以关闭这个窗口了
从刚才的地址得到的是一个 CVS 的文本文件,Windows 下将其导入 MySQL 的方法如下:
[b]1.[/b]将该文件靠到一个位置比方说 D:\ip-to-country.csv。
[b]2.[/b]在 MySQL 中建立一个表,格式如下:
[quote]
CREATE TABLE `ip2country` (
`ip_from` int(10) unsigned NOT NULL default '0',
`ip_to` int(10) unsigned NOT NULL default '0',
`country_code2` char(2) NOT NULL default '',
`country_code3` char(3) NOT NULL default '',
`country_name` varchar(50) NOT NULL default ''
) TYPE=MyISAM COMMENT='IP - 国家 映射表';
[/quote]
[b]3.[/b]使用进入 MySQL 的 bin 目录,运行 mysql.exe,需要加参数,比方说“mysql --user=用户名 --password=密码”,然后输入如下命令,test.ip2country 要换成你实际的“库名.表名”,另外要注意路径那里是双反斜线:
[quote]
LOAD DATA INFILE "D:\\ip-to-country.txt" INTO TABLE test.ip2country FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\r\n';
[/quote]
如果出现类似下面的字样表示导入添加成功,就可以打 quit 退出了:
[quote]
Query OK, 47523 rows affected (0.20 sec)
Records: 47523 Deleted: 0 Skipped: 0 Warnings: 0
[/quote]