Discuz获取IP的bug问题分析,坑爹的玩意

discuz的获取IP的方法是如下代码,每个版本位置不同,2.5的版本在 \source\class\discuz\discuz_application.php:


	private function _get_client_ip() {
		$ip = $_SERVER['REMOTE_ADDR'];
		if (isset($_SERVER['HTTP_CLIENT_IP']) 
&& preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
			$ip = $_SERVER['HTTP_CLIENT_IP'];
		} elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR']) 
AND preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', 
$_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
			foreach ($matches[0] AS $xip) {
				if (!preg_match('#^(10|172\.16|192\.168)\.#',
 $xip)) {
					$ip = $xip;
					break;
				}
			}
		}
		return $ip;
	}
这个代码获取IP有问题,为什么说获取有问题呢,因为以上代码是可以通过CURL伪造的:

» 阅读全文

关键词: ip的bug , discuz

xcode7下pod install报错Assertion failed: _initializationCompletedSuccessfully

自从更新了xcode7之后,pop更新和安装就报错了:

[MT] DVTAssertions: ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEFrameworks/IDEFrameworks-8227/IDEFoundation/Initialization/IDEInitialization.m:590
Details:  Assertion failed: _initializationCompletedSuccessfully
Function: BOOL IDEIsInitializedForUserInteraction()
Thread:   <NSThread: 0x7ff01d69f160>{number = 1, name = main}
Hints: None
Backtrace:
  0  0x00000001011a6a5c -[DVTAssertionHandler handleFailureInFunction:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in DVTFoundation)
  1  0x00000001011a61e9 _DVTAssertionHandler (in DVTFoundation)
  2  0x00000001011a6455 _DVTAssertionFailureHandler (in DVTFoundation)
  3  0x00000001011a63b7 _DVTAssertionFailureHandler (in DVTFoundation)
  4  0x0000000102642f5c IDEIsInitializedForUserInteraction (in IDEFoundation)
  5  0x000000010529aeb9 +[PBXProject projectWithFile:errorHandler:readOnly:] (in DevToolsCore)
  6  0x000000010529ca3e +[PBXProject projectWithFile:errorHandler:] (in DevToolsCore)
  7  0x00007fff8a9dbf44 ffi_call_unix64 (in libffi.dylib)
Abort trap: 6


我去。。找了一些原因,后来测试发现,把cocoapods 升级到最新版本就行了。

sudo gem install cocoapods


另外说一个题外话,淘宝吧 他的ruby源 改为 https协议了,记得替换。。。。


gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org/ $ gem sources -l
*** CURRENT SOURCES ***

https://ruby.taobao.org # 请确保只有 ruby.taobao.org

关键词: xcode7

如何定义一个人的成功?

文/周强(微信公共号:周强笔记本)


1901年11月7日,深秋的北京贤良寺,晚清肱骨之臣,洋务运动领袖,一代名相李鸿章在萧条、惨淡和悲凉中走完了他的跌宕起伏的一生。去世前,他还挣扎着全部的力气,口述诗道:“三百年来伤国步,八千里外吊民残。”此刻的他一定想起了58年前,20岁入京赶考提笔抒怀而作的“一万年来谁著史?八千里外觅封侯。”诗句,从傲娇的“觅封侯”,到无奈的“吊民残”,耗尽了李鸿章几近一生的宦海时光。


李 鸿章的一生,有过战太平,平捻军,兴洋务,办北洋的风风光光,也有过败甲午、签马关、丧国权、替罪羊的羞辱难堪。这些过往片段,一定在那个深秋弥留时刻, 清晰的闪回于他早已糊涂的脑海里。李鸿章就这样带着遗憾和悔恨逝去,也带着荣光和功绩逝去。不管他是怎么的失意,毋庸置疑,这一世取得成就,为人的结果, 不可不谓之有成功之处。正如梁启超在其《李鸿章传》中所说:“鸿章必为数千年中国历史上一人物,无可疑也。也必为十九世纪世界历史上一人物,无可疑也。

» 阅读全文

Nginx 的 Echo 模块 —— echo-nginx-module安装教程

为什么要写这个,主要是一个小伙伴问我,如何调试nginx一些信息。于是想到春哥的这个echo模块。

1、下载echo 模块

wget --no-check-certificate https://github.com/openresty/echo-nginx-module/archive/v0.58.zip

2、复制到一个模块目录:
unzip v0.58.zip
新建目录:/usr/local/nginx/module  
cp -r echo-nginx-module-0.58/ /usr/local/nginx/module

» 阅读全文

关键词: echo 模块 , echo-nginx-module

parallels desktop克隆虚拟机导致网卡丢失不能联网的解决方法

parallels desktop 11(我的版本是这个)克隆虚拟机不能联网。根据自己的摸索,现在将方法写下来:

环境:

parallels desktop 11

centos6.5

parallels克隆虚拟机后,网卡系统会有问题,我们看下网卡硬件配置信息。

/etc/udev/rules.d/目录下有一个70-persistent-net.rules的文件记录网卡和对应的硬件信息。

可以查看下,发觉,原始的有eth0,克隆后的系统有eth0 和eth1 , 2个mac地址。而且2个 eth0 都是一样的,问题就在这里了,

解决方法很简单:

1、去除克隆后的eth0 ,并将eth1 改为 eth0,并删除原来的eth0 ,如图,上面的是克隆过的,下面的被克隆的文件

» 阅读全文

阿里云ubuntu12.04系统安装pptp的VPN小记录

最近要搞一个玩意,需要搭配一个VPN,于是就选择了简单的pptp,简单用用够了。

本文基于ubuntu12.04 其实,linux系统都差不多吧,起码我把centos的python脚本,简单改下就可以安装vpn了

具体安装步骤如下:

1、安装pptp

apt-get install pptpd

2、修改系统数据转发。

sysctl -p /etc/sysctl.conf

取消,net.ipv4.ip_forward=1的前面的分号,如果没有就加一下吧,随便都行,这个是开启数据转发。

然后:sysctl -p /etc/sysctl.conf   让系统加载下。

» 阅读全文

关键词: pptp安装 , 阿里云 , ubuntu

Axure RP 7.0亲测通用注册码 破解版使用

Axure RP 7.0亲测通用注册码


ahjesus Axure RP 7.0注册码
用户名:axureuser
序列号:8wFfIX7a8hHq6yAy6T8zCz5R0NBKeVxo9IKu+kgKh79FL6IyPD6lK7G6+tqEV4LG


本注册码仅仅供测试使用,如需要使用,请购买正版,谢谢。。

顺便贡献上汉化包:

http://pan.baidu.com/s/1kTF31pd

关键词: axure注册码 , 注册码

centos下nginx搭载kramdown解析器解析.md(makedown)文件

.md文件是啥,大家不陌生吧?MD后缀名的文件就是Markdown文件,Markdown 是一种轻量级的标记语言。

但是如何搭建自己的kramdown解析器解析.md(makedown)文件呢。

开搞环境:

centos+nginx+php+kramdown

1、首先:

yum install ruby rubygems

 gem install kramdown

Gem是一个管理Ruby库和程序的标准包,这就不多说了,我不是很懂,反正就玩玩嘛,

» 阅读全文

关键词: md解析 , kramdown搭建