Browse Source

支持ipv6

tags/6.1.7
tianya 2 years ago
parent
commit
09688ebfb2
3 changed files with 46 additions and 42 deletions
  1. +13
    -13
      src/install/sql-dftables.txt
  2. +14
    -0
      src/install/v57sp2_to_v6.txt
  3. +19
    -29
      src/system/helpers/util.helper.php

+ 13
- 13
src/install/sql-dftables.txt View File

@@ -5,7 +5,7 @@ CREATE TABLE `#@__addonarticle` (
`body` mediumtext,
`redirecturl` varchar(255) NOT NULL default '',
`templet` varchar(30) NOT NULL default '',
`userip` char(15) NOT NULL default '',
`userip` char(46) NOT NULL default '',
PRIMARY KEY (`aid`),
KEY `typeid` (`typeid`)
) TYPE=MyISAM;
@@ -23,7 +23,7 @@ CREATE TABLE `#@__addonimages` (
`ddmaxwidth` smallint(6) NOT NULL default '200',
`pagepicnum` smallint(6) NOT NULL default '12',
`templet` varchar(30) NOT NULL default '',
`userip` char(15) NOT NULL default '',
`userip` char(46) NOT NULL default '',
`redirecturl` varchar(255) NOT NULL default '',
`body` mediumtext,
PRIMARY KEY (`aid`),
@@ -40,7 +40,7 @@ CREATE TABLE `#@__addoninfos` (
`click` int(10) unsigned NOT NULL default '0',
`title` varchar(60) NOT NULL default '',
`litpic` varchar(120) NOT NULL default '',
`userip` varchar(15) NOT NULL default ' ',
`userip` varchar(46) NOT NULL default ' ',
`senddate` int(11) NOT NULL default '0',
`flag` set('c','h','p','f','s','j','a','b') default NULL,
`lastpost` int(10) unsigned NOT NULL default '0',
@@ -70,7 +70,7 @@ CREATE TABLE `#@__addonshop` (
`brand` varchar(250) NOT NULL default '',
`units` varchar(250) NOT NULL default '',
`templet` varchar(30) NOT NULL,
`userip` char(15) NOT NULL,
`userip` char(46) NOT NULL,
`redirecturl` varchar(255) NOT NULL,
`vocation` char(20) NOT NULL default '0',
`infotype` char(20) NOT NULL default '0',
@@ -97,7 +97,7 @@ CREATE TABLE `#@__addonsoft` (
`daccess` smallint(5) NOT NULL default '0',
`needmoney` smallint(5) NOT NULL default '0',
`templet` varchar(30) NOT NULL default '',
`userip` char(15) NOT NULL default '',
`userip` char(46) NOT NULL default '',
`redirecturl` varchar(255) NOT NULL default '',
PRIMARY KEY (`aid`),
KEY `softMain` (`typeid`)
@@ -109,7 +109,7 @@ CREATE TABLE `#@__addonspec` (
`typeid` smallint(5) unsigned NOT NULL default '0',
`note` text,
`templet` varchar(30) NOT NULL default '',
`userip` char(15) NOT NULL default '',
`userip` char(46) NOT NULL default '',
`redirecturl` varchar(255) NOT NULL default '',
PRIMARY KEY (`aid`),
KEY `typeid` (`typeid`)
@@ -126,7 +126,7 @@ CREATE TABLE `#@__admin` (
`email` char(30) NOT NULL default '',
`typeid` text,
`logintime` int(10) unsigned NOT NULL default '0',
`loginip` varchar(20) NOT NULL default '',
`loginip` varchar(46) NOT NULL default '',
PRIMARY KEY (`id`)
) TYPE=MyISAM;
@@ -384,7 +384,7 @@ CREATE TABLE `#@__feedback` (
`typeid` smallint(5) unsigned NOT NULL default '0',
`username` char(20) NOT NULL default '',
`arctitle` varchar(60) NOT NULL default '',
`ip` char(15) NOT NULL default '',
`ip` char(46) NOT NULL default '',
`ischeck` smallint(6) NOT NULL default '0',
`dtime` int(10) unsigned NOT NULL default '0',
`replycount` INT(10) UNSIGNED NOT NULL DEFAULT '0',
@@ -472,7 +472,7 @@ CREATE TABLE `#@__log` (
`filename` char(60) NOT NULL default '',
`method` char(10) NOT NULL default '',
`query` char(200) NOT NULL default '',
`cip` char(15) NOT NULL default '',
`cip` char(46) NOT NULL default '',
`dtime` int(10) unsigned NOT NULL default '0',
PRIMARY KEY (`lid`)
) TYPE=MyISAM;
@@ -497,9 +497,9 @@ CREATE TABLE `#@__member` (
`safequestion` smallint(5) unsigned NOT NULL default '0',
`safeanswer` char(30) NOT NULL default '',
`jointime` int(10) unsigned NOT NULL default '0',
`joinip` char(16) NOT NULL default '',
`joinip` char(46) NOT NULL default '',
`logintime` int(10) unsigned NOT NULL default '0',
`loginip` char(16) NOT NULL default '',
`loginip` char(46) NOT NULL default '',
`checkmail` smallint(6) NOT NULL default '-1',
PRIMARY KEY (`mid`),
KEY `userid` (`userid`,`sex`),
@@ -884,7 +884,7 @@ CREATE TABLE `#@__shops_orders` (
`price` float(13,2) NOT NULL default '0.00',
`priceCount` float(13,2) NOT NULL,
`state` tinyint(1) NOT NULL default '0',
`ip` char(15) NOT NULL default '',
`ip` char(46) NOT NULL default '',
`stime` int(10) NOT NULL default '0',
KEY `stime` (`stime`),
KEY `userid` (`userid`),
@@ -1089,7 +1089,7 @@ CREATE TABLE `#@__vote_member` (
DROP TABLE IF EXISTS `#@__dl_log`;
CREATE TABLE `#@__dl_log` (
`id` mediumint(10) unsigned NOT NULL auto_increment,
`ip` char(16) NOT NULL,
`ip` char(46) NOT NULL,
`lang` char(6) NOT NULL,
`dtype` varchar(10) NOT NULL,
`dltime` int(10) unsigned NOT NULL default '0',


+ 14
- 0
src/install/v57sp2_to_v6.txt View File

@@ -1,3 +1,17 @@
-- 6.1.7
ALTER TABLE `#@__addonarticle` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__addonimages` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__addoninfos` MODIFY COLUMN `userip` varchar(46) NOT NULL DEFAULT '' AFTER `litpic`;
ALTER TABLE `#@__addonshop` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__addonsoft` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__addonspec` MODIFY COLUMN `userip` char(46) NOT NULL DEFAULT '' AFTER `templet`;
ALTER TABLE `#@__admin` MODIFY COLUMN `loginip` varchar(46) NOT NULL DEFAULT '' AFTER `logintime`;
ALTER TABLE `#@__feedback` MODIFY COLUMN `ip` char(46) NOT NULL DEFAULT '' AFTER `arctitle`;
ALTER TABLE `#@__log` MODIFY COLUMN `cip` char(46) NOT NULL DEFAULT '' AFTER `query`;
ALTER TABLE `#@__member` MODIFY COLUMN `joinip` char(46) NOT NULL DEFAULT '' AFTER `jointime`,MODIFY COLUMN `loginip` char(46) NOT NULL DEFAULT '' AFTER `logintime`;
ALTER TABLE `#@__shops_orders` MODIFY COLUMN `ip` char(46) CHARACTER NOT NULL DEFAULT '' AFTER `state`;
ALTER TABLE `#@__dl_log` MODIFY COLUMN `ip` char(46) NOT NULL AFTER `id`;

-- 6.1.0
ALTER TABLE `#@__arctype`
ADD COLUMN `namegk` varchar(255) NULL AFTER `typename`,


+ 19
- 29
src/system/helpers/util.helper.php View File

@@ -68,7 +68,7 @@ if (!function_exists('GetCurUrl')) {
if (empty($_SERVER["QUERY_STRING"])) {
$nowurl = $scriptName;
} else {
$nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
$nowurl = $scriptName . "?" . $_SERVER["QUERY_STRING"];
}
}
return $nowurl;
@@ -88,36 +88,26 @@ if (!function_exists('GetIP')) {
}
if (isset($_SERVER)) {
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
/* 取X-Forwarded-For中第x个非unknown的有效IP字符? */
foreach ($arr as $ip) {
$ip = trim($ip);
if ($ip != 'unknown') {
$realip = $ip;
break;
}
}
} elseif (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else if (isset($_SERVER['HTTP_CLIENT_IP'])) {
$realip = $_SERVER['HTTP_CLIENT_IP'];
} else {
if (isset($_SERVER['REMOTE_ADDR'])) {
$realip = $_SERVER['REMOTE_ADDR'];
} else {
$realip = '0.0.0.0';
}
$realip = $_SERVER['REMOTE_ADDR'];
}
} else {
if (getenv('HTTP_X_FORWARDED_FOR')) {
$realip = getenv('HTTP_X_FORWARDED_FOR');
} elseif (getenv('HTTP_CLIENT_IP')) {
} else if (getenv('HTTP_CLIENT_IP')) {
$realip = getenv('HTTP_CLIENT_IP');
} else {
$realip = getenv('REMOTE_ADDR');
}
}
preg_match("/[\d\.]{7,15}/", $realip, $onlineip);
$realip = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';
return $realip;
if (filter_var($realip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_IPV6)) {
return $realip;
} else {
return 'unknown';
}
}
}
/**
@@ -135,7 +125,7 @@ if (!function_exists('GetEditor')) {
function GetEditor($fname, $fvalue, $nheight = "350", $etype = "Basic", $gtype = "print", $isfullpage = "FALSE", $bbcode = false)
{
if (!function_exists('SpGetEditor')) {
require_once(DEDEINC."/inc/inc_fun_funAdmin.php");
require_once(DEDEINC . "/inc/inc_fun_funAdmin.php");
}
return SpGetEditor($fname, $fvalue, $nheight, $etype, $gtype, $isfullpage, $bbcode);
}
@@ -168,7 +158,7 @@ if (!function_exists('GetTemplets')) {
if (!function_exists('GetSysTemplets')) {
function GetSysTemplets($filename)
{
return GetTemplets($GLOBALS['cfg_basedir'].$GLOBALS['cfg_templets_dir'].'/system/'.$filename);
return GetTemplets($GLOBALS['cfg_basedir'] . $GLOBALS['cfg_templets_dir'] . '/system/' . $filename);
}
}
/**
@@ -180,7 +170,7 @@ if (!function_exists('GetNewInfo')) {
function GetNewInfo()
{
if (!function_exists('SpGetNewInfo')) {
require_once(DEDEINC."/inc/inc_fun_funAdmin.php");
require_once(DEDEINC . "/inc/inc_fun_funAdmin.php");
}
return SpGetNewInfo();
}
@@ -201,7 +191,7 @@ if (!function_exists('dd2char')) {
$nn = '';
for ($i = 0; $i < $slen; $i++) {
if (isset($ddnum[$i + 1])) {
$n = $ddnum[$i].$ddnum[$i + 1];
$n = $ddnum[$i] . $ddnum[$i + 1];
if (($n > 96 && $n < 123) || ($n > 64 && $n < 91)) {
$okdd .= chr($n);
$i++;
@@ -232,9 +222,9 @@ if (!function_exists('json_encode')) {
} else if (is_float($value)) {
$value = floatval($value);
} else if (defined($value) && $value === NULL) {
$value = strval(constant($value));
$value = strval(constant((string)$value));
} else if (is_string($value)) {
$value = '"'.addslashes($value).'"';
$value = '"' . addslashes($value) . '"';
}
return $value;
}
@@ -258,9 +248,9 @@ if (!function_exists('json_encode')) {
foreach ($data as $key => $val) {
if (!is_NULL($val)) {
if ($assoc) {
$json .= "\"$key\":".json_encode($val).",";
$json .= "\"$key\":" . json_encode($val) . ",";
} else {
$json .= json_encode($val).",";
$json .= json_encode($val) . ",";
}
}
}
@@ -307,4 +297,4 @@ if (!function_exists('json_decode')) {
}
return $result;
}
}
}

Loading…
Cancel
Save