网络品牌网站建设手机端怎么刷排名
目前MaxMind对MMDB的读写支持如下
Writer:
perl
Reader:
C
C#
Java
Perl
PHP
Python
所以本文着重介绍如何快速使用perl生成mmdb文件,以及查询mmdb基本原理
工作环境:Centos 6.5
一、安装perl环境
忽略解压、cd等基础操作
- 1 .下载perl5 https://www.perl.org/get.html#unix_like 我下载的是Source版(需使用新版perl5,centos默认的perl5不支持)
- wget http://www.cpan.org/src/5.0/perl-5.24.0.tar.gz
- 2 .编译 安装
- configure.gnu
- make
- make install
- 3 .安装 cpan,git
- yum install cpan git
- 4 .备份替换系统perl文件
- mv /usr/bin/perl /usr/bin/perk.bak
- ln -s /usr/local/bin/perl /usr/bin/perl
5.git clone mmdb writer
- git clone https://github.com/maxmind/MaxMind-DB-Writer-perl.git
6.切换至writer目录,下载cpanm并安装模块依赖(所需时间很长)
- curl -LO http://xrl.us/cpanm
- perl cpanm –installdeps .
7.安装mmdb Writer模块
- perl Build.PL
- ./Build install
二、生成库文件
- 编写perl代码,下面为样例,将读local.db文件,生成dt.mmdb文件
use MaxMind::DB::Writer::Tree;
use Net::Works::Network;use strict;
use warnings;
use Path::Class;
use autodie;my %types = (product => 'utf8_string',rack => 'utf8_string',administrator => 'utf8_string',room => 'utf8_string',
);my $tree = MaxMind::DB::Writer::Tree->new(ip_version => 4,record_size => 24,database_type => 'kevin_test',languages => [ 'en' ],description => { en => 'Used in MarkDown display' },map_key_type_callback => sub { $types{ $_[0] } },
);sub tree_insert_network{my $network = Net::Works::Network->new_from_string( string => $_[1] );$_[0]->insert_network($network,{product => $_[2],rack => $_[3],administrator => $_[4],room => $_[5]},);
}sub build_tree{my $dir = dir(".");my $file = $dir->file($_[0]);my $content = $file->slurp();my $file_handle = $file->openr();binmode($file_handle, ":utf8");while( my $line = $file_handle->getline() ) {$line =~ s/^\s+|\s+$//g;if ($line eq "") {next;}my @values = split('\|', $line);for (