<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>一树后花园 &#187; wordpress</title>
	<atom:link href="http://www.onono.org/tag/wordpress/feed" rel="self" type="application/rss+xml" />
	<link>http://www.onono.org</link>
	<description>一树的随想、生活与资料存档。</description>
	<lastBuildDate>Sun, 18 Sep 2011 01:38:05 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>WordPress无法正确记录访客IP</title>
		<link>http://www.onono.org/2009/07/181.htm</link>
		<comments>http://www.onono.org/2009/07/181.htm#comments</comments>
		<pubDate>Fri, 03 Jul 2009 07:37:45 +0000</pubDate>
		<dc:creator>一树</dc:creator>
				<category><![CDATA[技术文档]]></category>
		<category><![CDATA[IP]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.onono.org/?p=181</guid>
		<description><![CDATA[这个问题困扰我很久了，特别是近来发垃圾评论的人增多，想封IP都变得不可能，因为WordPress在后台记录的IP统统为127.0.0.1，在其他主机上都很正常，很肯定是主机商的问题。 找了客服同志，客服找技术支持，给的答复是： 把以下代码加到wp-config.php开头 if&#40;isset&#40;$_SERVER&#91;&#39;HTTP_X_FORWARDED_FOR&#39;&#93;&#41;&#41; &#123; $list = explode&#40;&#39;,&#39;,$_SERVER&#91;&#39;HTTP_X_FORWARDED_FOR&#39;&#93;&#41;; $_SERVER&#91;&#39;REMOTE_ADDR&#39;&#93; = $list&#91;0&#93;; &#125; 太神奇了~~ 最后，客服说，高难度的事都要找那位技术人员…… 解读一下，$_SERVER['HTTP_X_FORWARDED_FOR']和$_SERVER['REMOTE_ADDR']都是用于获取客户端IP的，全局变量，因此可以直接调用。 $_SERVER['REMOTE_ADDR']是正在浏览当前页面用户的 IP 地址，由于服务器自身启用了反向代理，所以这个变量始终记录IP为127.0.0.1。 $_SERVER["HTTP_X_FORWARDED_FOR"]用于获取使用代理服务器用户的IP，但有时读取的仍然是代理服务器本身的IP。 如果$_SERVER['HTTP_X_FORWARDED_FOR']存在，则用它替代$_SERVER['REMOTE_ADDR']，WordPress在记录IP的时候，就能正确的引用$_SERVER['REMOTE_ADDR']变量的值，正确记录IP。]]></description>
			<content:encoded><![CDATA[<p>这个问题困扰我很久了，特别是近来发垃圾评论的人增多，想封IP都变得不可能，因为WordPress在后台记录的IP统统为127.0.0.1，在其他主机上都很正常，很肯定是主机商的问题。<br />
找了客服同志，客服找技术支持，给的答复是：<br />
把以下代码加到wp-config.php开头</p>
<p><span id="more-181"></span></p>
<div class="geshi php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">if</span><span class="br0">&#40;</span><span class="kw3">isset</span><span class="br0">&#40;</span><span class="re1">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#39;HTTP_X_FORWARDED_FOR&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$list</span> <span class="sy0">=</span> <span class="kw3">explode</span><span class="br0">&#40;</span><span class="st0">&#39;,&#39;</span><span class="sy0">,</span><span class="re1">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#39;HTTP_X_FORWARDED_FOR&#39;</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$_SERVER</span><span class="br0">&#91;</span><span class="st0">&#39;REMOTE_ADDR&#39;</span><span class="br0">&#93;</span> <span class="sy0">=</span> <span class="re1">$list</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>太神奇了~~<br />
最后，客服说，高难度的事都要找那位技术人员……</p>
<p>解读一下，$_SERVER['HTTP_X_FORWARDED_FOR']和$_SERVER['REMOTE_ADDR']都是用于获取客户端IP的，全局变量，因此可以直接调用。<br />
$_SERVER['REMOTE_ADDR']是正在浏览当前页面用户的 IP 地址，<strong><span style="color: #ff0000;">由于服务器自身启用了反向代理，所以这个变量始终记录IP为127.0.0.1</span>。</strong><br />
$_SERVER["HTTP_X_FORWARDED_FOR"]用于获取使用代理服务器用户的IP，但有时读取的仍然是代理服务器本身的IP。</p>
<p>如果$_SERVER['HTTP_X_FORWARDED_FOR']存在，则用它替代$_SERVER['REMOTE_ADDR']，WordPress在记录IP的时候，就能正确的引用$_SERVER['REMOTE_ADDR']变量的值，正确记录IP。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.onono.org/2009/07/181.htm/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

