纯真ip数据库怎么用 (详细点的)你是使用php来读取数据库的吗?
如果是的话 , 那么 , 你把下面的这个类保存成一个文件:
————————————————————
<?php
/**
* IP 地理位置查询类
*
* @author joyphper
* @version 1.0
* @copyright 2010 joyphper.net
*/
class ip_area {
/**
*
*
* @var resource
*/
private $fp;//IP库文件指针 resource
private $firstip;//第一条IP记录的偏移地址 int
private $lastip;//最后一条IP记录的偏移地址 int
private $totalip;//IP记录的总条数(不包含版本信息记录) int
/**
* 构造函数,打开 QQWry.Dat 文件并初始化类中的信息
*
* @param string $filename
* @return IpLocation
*/
public function __construct($filename = "data/ipdb.Dat") {//////////////////////////////////////////////这里注意,根据你的数据库存放位置不同,把这个数据库进行引入 。
$this->fp = 0;
if (($this->fp = fopen($filename, 'rb')) !== false) {
$this->firstip = $this->getlong();
$this->lastip = $this->getlong();
$this->totalip = ($this->lastip - $this->firstip) / 7;//注册析构函数,使其在程序执行结束时执行
register_shutdown_function(array(&$this, '__destruct'));
}
}
/**
* 析构函数 , 用于在页面执行结束后自动关闭打开的文件 。
*
*/
public function __destruct() {
if ($this->fp) {
fclose($this->fp);
}
$this->fp = 0;
}
/**
* 返回读取的长整型数
*
* @access private
* @return int
*/
private function getlong() {//将读取的little-endian编码的4个字节转化为长整型数
$result = unpack('Vlong', fread($this->fp, 4));
return $result['long'];
}
/**
* 返回读取的3个字节的长整型数
*
* @access private
* @return int
*/
private function getlong3() {//将读取的little-endian编码的3个字节转化为长整型数
$result = unpack('Vlong', fread($this->fp, 3).chr(0));
return $result['long'];
}
/**
* 返回压缩后可进行比较的IP地址
*
* @access private
* @param string $ip
* @return string
*/
private function packip($ip) {// 将IP地址转化为长整型数,如果在PHP5中,IP地址错误 , 则返回False,// 这时intval将Flase转化为整数-1,之后压缩成big-endian编码的字符串
return pack('N', intval(ip2long($ip)));
}
/**
* 返回读取的字符串
*
* @access private
* @param string $data
* @return string
*/
private function getstring($data = https://www.zaoxu.com/jjsh/bkdq/"") {
$char = fread($this->fp, 1);
while (ord($char) > 0) {// 字符串按照C格式保存,以\0结束
$data .= $char;// 将读取的字符连接到给定字符串之后
$char = fread($this->fp, 1);
}
return $data;
}
/**
* 返回地区信息
*
* @access private
* @return string
*/
private function getarea() {
$byte = fread($this->fp, 1);// 标志字节
switch (ord($byte)) {
case 0:// 没有区域信息
$area = "";
break;
case 1:
case 2:// 标志字节为1或2,表示区域信息被重定向
fseek($this->fp, $this->getlong3());
$area = $this->getstring();
break;
default:// 否则 , 表示区域信息没有被重定向
$area = $this->getstring($byte);
break;
}
return $area;
}
/**
* 根据所给 IP 地址或域名返回所在地区信息
*
* @access public
* @param string $ip
* @return array
*/
public function get($ip) {
if (!$this->fp) return null;// 如果数据文件没有被正确打开,则直接返回空
$location['ip'] = gethostbyname($ip);// 将输入的域名转化为IP地址
$ip = $this->packip($location['ip']);// 将输入的IP地址转化为可比较的IP地址
// 不合法的IP地址会被转化为255.255.255.255// 对分搜索
$l = 0;// 搜索的下边界
$u = $this->totalip;// 搜索的上边界
$findip = $this->lastip;// 如果没有找到就返回最后一条IP记录(QQWry.Dat的版本信息)
while ($l <= $u) {// 当上边界小于下边界时,查找失败
$i = floor(($l + $u) / 2); // 计算近似中间记录
fseek($this->fp, $this->firstip + $i * 7);
$beginip = strrev(fread($this->fp, 4));// 获取中间记录的开始IP地址// strrev函数在这里的作用是将little-endian的压缩IP地址转化为big-endian的格式// 以便用于比较 , 后面相同 。
if ($ip < $beginip) {// 用户的IP小于中间记录的开始IP地址时
$u = $i - 1;// 将搜索的上边界修改为中间记录减一
}else{
fseek($this->fp, $this->getlong3());
$endip = strrev(fread($this->fp, 4));// 获取中间记录的结束IP地址
if ($ip > $endip) {// 用户的IP大于中间记录的结束IP地址时
$l = $i + 1;// 将搜索的下边界修改为中间记录加一
}else{// 用户的IP在中间记录的IP范围内时
$findip = $this->firstip + $i * 7;
break;// 则表示找到结果,退出循环
}
}
}//获取查找到的IP地理位置信息
fseek($this->fp, $findip);
$location['beginip'] = long2ip($this->getlong());// 用户IP所在范围的开始地址
$offset = $this->getlong3();
fseek($this->fp, $offset);
$location['endip'] = long2ip($this->getlong());// 用户IP所在范围的结束地址
$byte = fread($this->fp, 1);// 标志字节
switch (ord($byte)) {
case 1:// 标志字节为1,表示国家和区域信息都被同时重定向
$countryOffset = $this->getlong3();// 重定向地址
fseek($this->fp, $countryOffset);
$byte = fread($this->fp, 1);// 标志字节
switch (ord($byte)) {
case 2:// 标志字节为2,表示国家信息又被重定向
fseek($this->fp, $this->getlong3());
$location['country'] = $this->getstring();
fseek($this->fp, $countryOffset + 4);
$location['area'] = $this->getarea();
break;
default:// 否则 , 表示国家信息没有被重定向
$location['country'] = $this->getstring($byte);
$location['area'] = $this->getarea();
break;
}
break;
case 2:// 标志字节为2 , 表示国家信息被重定向
fseek($this->fp, $this->getlong3());
$location['country'] = $this->getstring();
fseek($this->fp, $offset + 8);
$location['area'] = $this->getarea();
break;
default:// 否则,表示国家信息没有被重定向
$location['country'] = $this->getstring($byte);
$location['area'] = $this->getarea();
break;
}
if ($location['country'] == " CZ88.NET") { // CZ88.NET表示没有有效信息
$location['country'] = "未知";
}
if ($location['area'] == " CZ88.NET") {
$location['area'] = "";
}
$location['country']=iconv('gbk', 'utf-8', $location['country']);
$location['area']=iconv('gbk', 'utf-8', $location['area']);
return $location;
}
}
?>
——————————————
这个类里有个引入数据库的行,需要你进行更改 。
接下来 , 你在需要使用IP数据库的页面中 , 将这个类引入,并执行下列函数:
$ip = new ip_area();
这个类不用传参,自会得到ip的地理位置 。
最后 , 如果你想得到IP值,那么可以使用以下方法:
————————
function ip(){//-------------------------------------------获得用户IP;
if(isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip=$_SERVER["HTTP_X_FORWARDED_FOR"];
}elseif(isset($_SERVER["HTTP_CLIENT_IP"])){
$realip=$_SERVER["HTTP_CLIENT_IP"];
}else{
$realip=$_SERVER["REMOTE_ADDR"];
}
}else{
if(getenv("HTTP_X_FORWARDED_FOR")){
$realip=getenv("HTTP_X_FORWARDED_FOR");
}elseif(getenv("HTTP_CLIENT_IP")){
$realip=getenv("HTTP_CLIENT_IP");
}else{
$realip=getenv("REMOTE_ADDR");
}
}
return $realip;
}
——————————————————————
纯真ip数据库是做什么用的?怎么用安装文件夹下有一个可执行文件,在那个软件的界面里你可以搜索ip对应的物理位置 , 也可以按照地址查询这个地址的ip段,在网络攻击的时候有用 。
如何把纯真ip数据库导入到MySQL数据表中一、下载最新版的QQWry.Dat
二、下载IPLook
使用IPLook把QQWry.Dat文件解压到IPData.txt文件
打开IPData.txt文件格式是这样的
0.0.0.00.255.255.255IANA保留地址CZ88.NET
1.0.0.01.0.0.255澳大利亚CZ88.Net
1.0.1.01.0.3.255福建省电信
1.0.4.01.0.7.255澳大利亚CZ88.NET
1.0.8.01.0.15.255广东省电信
1.0.16.01.0.31.255日本CZ88.NET
1.0.32.01.0.63.255广东省电信
1.0.64.01.0.127.255日本CZ88.NET
1.0.128.01.0.255.255泰国CZ88.NET
1.1.0.01.1.0.255福建省电信
1.1.1.01.1.1.255澳大利亚CZ88.NET
三、使用Navicat for MySQL工具
1.建立ip数据库表
CREATE TABLE `ip` (
`StartIP` varchar(20) default '',
`EndIP` varchar(20) default NULL,
`Country` varchar(30) default NULL,
`Local` varchar(50) default NULL,
KEY `IP` USING BTREE (`StartIP`,`EndIP`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2.使用Navicat for MySQL的导入向导功能把IPData.txt文件的数据导入到ip数据表中
四、如何在MySQL中对ip比较
select*from ip where INET_ATON('119.253.32.42') between INET_ATON(startIp) and INET_ATON(endIp);
纯真ip数据库怎么导入mysql中打开IPData.txt文件格式是这样的
0.0.0.0 0.255.255.255 IANA保留地址 CZ88.NET
1.0.0.0 1.0.0.255 澳大利亚 CZ88.NET
1.0.1.0 1.0.3.255 福建省 电信
1.0.4.0 1.0.7.255 澳大利亚 CZ88.NET
1.0.8.0 1.0.15.255 广东省 电信
1.0.16.0 1.0.31.255 日本 CZ88.NET
1.0.32.0 1.0.63.255 广东省 电信
1.0.64.0 1.0.127.255 日本 CZ88.NET
1.0.128.0 1.0.255.255 泰国 CZ88.NET
1.1.0.0 1.1.0.255 福建省 电信
1.1.1.0 1.1.1.255 澳大利亚 CZ88.NET
三、使用Navicat for MySQL工具
1.建立ip数据库表
CREATE TABLE `ip` (
`StartIP` varchar(20) default '',
`EndIP` varchar(20) default NULL,
`Country` varchar(30) default NULL,`Local` varchar(50) default NULL,
纯真ip数据库怎么样If more lines of text exist in the file, print another page.
namespace DesignPattern.Create.Component
{
abstract class Component{
protected string name;
public Component(string name)
{
this.name = name;
}
纯真ip数据库怎么用?楼主你的问题问错了啊,IP纯真数据库是全国的IP段,他里面只提供IP地址查询..至于你说的扫3389端口,那个是扫描器的工作.你可以下在一个S扫描器,把你要扫的IP地址填写进去.就好了
纯真ip数据库怎么用呢,求高手我
纯真ip数据库怎么用?下载QQ珊瑚虫版本,再自动升级到官方2008版本,可以使用显IP功能
IP数据库(纯真版)有什么用,怎么用?可以找到各地区电脑的ip一般拿来宽带卡钻用
纯真IP数据库,怎么查IP段你选了开始段,没有选结束段呀?
比如:
开始段221.0.0.1 结束段221.0.0.254
纯真ip数据库是做什么用的?怎么用纯真IP数据库是纯真网络(一个企业或网络团体)收集的关于全国的固定IP地址的一个数据库,会不断的随着变化或增加而进行更新 , 通过这个数据库 , 你就可以通过QQ或其他网络软件知道某个IP是归属于哪个省哪个市哪个地区,比如你可以知道你的QQ好友是哪个省哪个地区的 。
纯真ip数据库修改工具首先,打开include/misc.func.php 找到 if(!$fd = @fopen($ipdatafile)) { 改为 if(!$fd = @fopen($ipdatafile, 'rb')) { 官方的文件里少了“rb”这个参数,也就是以二进制的方式打开 wry.dat 然后上传wry.dat 这部完成 , 可以读取纯真的数据库了,但是中文显示全部是乱码,就要进行第二步 找到代码 return '- '.$ipaddr; 改为 return mb_convert_encoding($ipaddr,"utf-8","gb2312"); 现在能正确显示纯真的IP了
什么是纯真ip段数据库?纯真是个网络技术组织的名称
纯真ip段数据库收集全国和主要国家地区的几乎所有IP段对应的城市信息,之前显IPQQ对应城市就是利用这个数据库来完成的 , 是目前公开的更新最快最全的IP地址库
纯真ip数据库里的ip都是那些类型的?可以!路由分配ip是一个网段的分!一个小区一个网吧都是分一个或者多个网段!校园网就是一个很好地例子!
纯真ip数据库用什么软件能打开?1.运行纯真QQIP数据库里带的ShowIP.exe , 点解压,输入文件名,比如1.txt,确定,就得到一个TXT文件 。
2.打开ACCESS , 工具-自定义,命令选项卡,把导入选项拖动到上面的工具栏 。
3.建库,建一个表,四个字段
startip 16 文本
endip 16 文本
country 100 文本
local 20 文本
依次为:字段名,长度,类型
4.点导入按钮 , 文件类型选文本文件,找到刚才导出的1.txt文件,导入到刚才建的表里~
纯真IP数据库 , 有无类似的英文版的?。咳绻懈鱿略氐刂罚?/h3>纯真不是简体中文程序么,你用来做英文网吗
如何把纯真ip数据库导入到MySQL数据表中打开IPData.txt文件格式是这样的0.0.0.0 0.255.255.255 IANA保留地址 CZ88.NET1.0.0.0 1.0.0.255 澳大利亚 CZ88.NET1.0.1.0 1.0.3.255 福建省 电信1.0.4.0 1.0.7.255 澳大利亚 CZ88.NET1.0.8.0 1.0.15.255 广东省 电信1.0.16.0 1.0.31.255 日本 CZ88.NET1.0.32.0 1.0.63.255 广东省 电信1.0.64.0 1.0.127.255 日本 CZ88.NET1.0.128.0 1.0.255.255 泰国 CZ88.NET1.1.0.0 1.1.0.255 福建省 电信1.1.1.0 1.1.1.255 澳大利亚 CZ88.NET三、使用Navicat for MySQL工具1.建立ip数据库表CREATE TABLE `ip` (`StartIP` varchar(20) default '',`EndIP` varchar(20) default NULL,`Country` varchar(30) default NULL,`Local` varchar(50) default NULL,
纯真ip数据库 获取的地名$QQWry->Country如何输入到mysql数据库里面把变量写在单引号里, 是不被解析的 , 最好还是用“.”拼出来 。
oracle数据库中的表如何能够导入到mysql中?可以用PB、PLSQL Developer等软件,把表的数据倒成SQL文件,在MySql中执行!
PLSQL Developer下载: http://www.oyksoft.com/downinfo/1924.html
我们项目组曾经将Oracle的数据倒入到DB2中,没有DBA,没有用到任何工具,是写数据迁移程序,大概步骤是这样:
1、根据双方数据库的数据字典,罗列出需要的字段
2、编写相应的迁移程序,主要注意的地方就是Oracle的数据类型要做相应的转换,转移成DB2里有的,删除倒出时一些无用的数据,使导入的数据具有意义!
3、抽取数据做验证!
你参考一下,如果数据量不大的话,完成可以用把表的数据倒成SQL文件再执行!
MySql数据怎么导入数据库中,【纯真ip数据库】MySQL数据库的导入 , 有两种方法:
1) 先导出数据库SQL脚本,再导入;
2) 直接拷贝数据库目录和文件 。
在不同操作系统或MySQL版本情况下 , 直接拷贝文件的方法可能会有不兼容的情况发生 。
所以一般推荐用SQL脚本形式导入 。下面分别介绍两种方法 。
2. 方法一 SQL脚本形式
操作步骤如下:
2.1. 导出SQL脚本
在原数据库服务器上,可以用phpMyAdmin工具,或者mysqldump命令行 , 导出SQL脚本 。
2.1.1 用phpMyAdmin工具
导出选项中 , 选择导出“结构”和“数据”,不要添加“DROP DATABASE”和“DROP TABLE”选项 。
选中“另存为文件”选项,如果数据比较多,可以选中“gzipped”选项 。
将导出的SQL文件保存下来 。
2.1.2 用mysqldump命令行
命令格式
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
范例:
mysqldump -uroot -p abc > abc.sql
(导出数据库abc到abc.sql文件)
提示输入密码时,输入该数据库用户名的密码 。
2.2. 创建空的数据库
通过主控界面/控制面板 , 创建一个数据库 。假设数据库名为abc,数据库全权用户为abc_f 。
2.3. 将SQL脚本导入执行
同样是两种方法,一种用phpMyAdmin(mysql数据库管理)工具,或者mysql命令行 。
2.3.1 用phpMyAdmin工具
从控制面板 , 选择创建的空数据库,点“管理”,进入管理工具页面 。
在"SQL"菜单中,浏览选择刚才导出的SQL文件,点击“执行”以上载并执行 。
注意:phpMyAdmin对上载的文件大小有限制 , php本身对上载文件大小也有限制,如果原始sql文件
比较大 , 可以先用gzip对它进行压缩 , 对于sql文件这样的文本文件,可获得1:5或更高的压缩率 。
gzip使用方法:
# gzip xxxxx.sql
得到
xxxxx.sql.gz文件 。
提示输入密码时 , 输入该数据库用户名的密码 。
3 直接拷贝
如果数据库比较大,可以考虑用直接拷贝的方法,但不同版本和操作系统之间可能不兼容,要慎用 。
3.1 准备原始文件
用tar打包为一个文件
3.2 创建空数据库
3.3 解压
在临时目录中解压,如:
cd /tmp
tar zxf mydb.tar.gz
3.4 拷贝
将解压后的数据库文件拷贝到相关目录
cd mydb/
cp * /var/lib/mysql/mydb/
对于FreeBSD:
cp * /var/db/mysql/mydb/
3.5 权限设置
将拷贝过去的文件的属主改为mysql:mysql,权限改为660
chown mysql:mysql /var/lib/mysql/mydb/*
chmod 660 /var/lib/mysql/mydb/*
- '是什么符号'
- 夏至未至 让感觉进入纯真的记忆
- 翠翠爱情悲剧的原因_边城中的人们是那么善良,纯真,为什么翠翠的爱情...
- 纯真的近义词是什么_“纯洁”的近义词是什么?
- 纯真的近义词_留意和纯真的近义词是什么?
- 纯真的年代被禁原因_电视剧《纯真的年代 》结局剧情是如何?
- 纯真的年代为何被禁_纯真的年代的剧情简介
- 纯真的年代为什么被禁_纯真的年代的剧情简介
- 纯真年代歌词_走过纯真年代的歌词
- 索引的作用_设计数据库中的索引有什么作用?
