【转载】NexusPHP pt显示IP地址地理位置
默认的NexusPHP 的显示IP地理位置不知道本来就不能使用还是我下载的源码坏了,今天修正。原先的效果图。
首先查找打开文件 “/include/functions.php”
查找
$location = array($lang_functions['text_unknown'],"");
注释 替换为
// $location = array($lang_functions['text_unknown'],"");
$location = array(getUserAddrss($ip),"");
再最低侧插入
/**2013-11-15 ℡龙龙修正 admin@nmc126.com
替换
// $location = array($lang_functions['text_unknown'],"");
$location = array(getUserAddrss($ip),"");
*/
function getUserAddrss($ip)
{
global $lang_functions;
$address = mysql_fetch_assoc(sql_query("SELECT memo FROM address where inet_aton('$ip')<=endip and inet_aton('$ip')>=beginip"));
if(empty($address))
return $lang_functions['text_unknown'];
return $address['memo'];
}
然后再你的数据库内新建表“address”
-- phpMyAdmin SQL Dump
-- version 3.4.8
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2013 年 11 月 15 日 20:29
-- 服务器版本: 5.5.28
-- PHP 版本: 5.3.17
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- 数据库: `nexusphp`
--
-- --------------------------------------------------------
--
-- 表的结构 `address`
--
CREATE TABLE IF NOT EXISTS `address` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`beginip` int(20) unsigned NOT NULL COMMENT '起始ip',
`endip` int(20) unsigned NOT NULL COMMENT '终止ip',
`memo` varchar(100) NOT NULL COMMENT '说明',
PRIMARY KEY (`id`)
) ENGINE=MyISAMDEFAULT CHARSET=utf8 AUTO_INCREMENT=4 ;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
并且插入你的数据
sql语句 (替换你的数据)
INSERT INTO `nexusphp`.`address` (`id`, `beginip`, `endip`, `memo`) VALUES ('1', INET_ATON('10.101.1.1'), INET_ATON('10.101.1.254'), '一号学生公寓一楼'), ('2', INET_ATON('10.101.2.1'), INET_ATON('10.101.2.254'), '一号学生公寓二楼');
或者手动添加插入。
批量导入数据
比如你的 excel 的“beginip”=B1 ,“endip”=D1 ,“memo”=F1.
INSERT INTO `nexusphp`.`address` (`beginip`, `endip`, `memo`) VALUES (INET_ATON('="B1"'),INET_ATON('="D1"'), '=="F1"');
INSERT INTO `nexusphp`.`address` (`beginip`, `endip`, `memo`) VALUES (INET_ATON('="B2"'),INET_ATON('="D2"'), '=="F2"');
上列例子 转换为 .txt 文本文件,进行SQL 导入。
显示正确的效果图
此文章 转自 http://bbs.nmc126.com/thread-2528-1-1.html 妹就是正义,妹就是经典,妹就是王道,妹就是真理,妹就是未来,妹就是希望,妹就是信仰,妹就是唯一! ! ! ! 路过帮顶 作死啊,用SQL当IP数据库?
页:
[1]