默认的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=MyISAM DEFAULT 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 */;
address.zip
(726 Bytes)
(下载次数: 713, 2013/11/15 21:53 上传)
并且插入你的数据
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