$ip2_str = 0; //初始化
foreach($ip_arr as $i=>$s){
$ip2_str += $s*pow(256,3-$i);
}
fwrite($fd2,($id>1?"\r\n":"")."\"$id\",\"$ip1_str\",\"$ip2_str\",\"$address_str\""); //写入临时文件
}
die("输出完成");
?>
----------------------------------------------------------------------------------------------------------------------
注意fopen函数的实际路径,注释都加了,应该能看明白吧!
执行后,会在临时目录生成一个以IP_为前缀的tmp文件
五、现在可以用生成的临时文件导入到ip表中了代码如下:
数据库连接的代码db.php
<?php
$dbhost = 'localhost'; // 数据库服务器
$dbuser = 'root'; // 数据库用户名
$dbpw = '123456'; // 数据库密码 这里实际来填喽!!
$dbname = 'ipdb'; // 数据库名
$dbtable = 'ip'; //ip数据表
?>
------------------------------------------------------------------------------------------------------
<?php
require_once("db.php");
if(!mysql_connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect) or !mysql_select_db($dbname)){die("datebase error."); }
mysql_query("SET NAMES 'utf8'");
//mysql_query("update ip set address='暂无资料' where address=' '");
mysql_query("TRUNCATE TABLE `$dbtable`;");
mysql_query("LOAD DATA LOCAL INFILE '".addslashes("E:\\Temp\\ip_11.tmp")."' INTO TABLE `$dbtable` FIELDS TERMINATED BY ',' ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\\r\\n'");
?>
好了最后是显示IP的代码:
<?php
require_once("db.php");
if(!mysql_connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect) or !mysql_select_db($dbname)){die("datebase error."); }
mysql_query("SET NAMES 'utf8'");
$ip = $_SERVER['REMOTE_ADDR'];
echo '你的IP:'.$ip.'<br />';
$ip_arr = explode(".",$ip);
$ip = 0;
foreach($ip_arr as $i=>$s){
$ip += $s*pow(256,3-$i);
}
echo '转十进制值:'.$ip.'<br />';
$result = mysql_query("SELECT * FROM ip WHERE ip1<= $ip AND ip2>= $ip");
$re_arr = mysql_fetch_array($result);