banner
libxcnya.so

libxcnya.so

Nothing...
telegram
twitter
github
email

Typecho 使用 CDN 後獲取訪客真 IP

前言#

CDN 可以起到加速網站和保護源站 IP 的作用,但是 Typecho 啟用 CDN 後,後台評論區使用者的 IP 均顯示為 CDN 的 IP,那麼怎樣才能獲取使用者的真實 IP 地址呢?

教程#

首先打開 [這個][1]
獲取自己的 IP 地址,比如說 2001:470:c:573::2333

新建一個 PHP 檔案,輸入以下內容

<?php
print_r($_SERVER);
?>

然後通過瀏覽器訪問,得到以下內容

*Array
(
[USER] => www
[HOME] => /home/www
[HTTP_CDN_LOOP] => cloudflare
[HTTP_CF_CONNECTING_IP] => 2001:470:c:573::2333
[HTTP_COOKIE] => __cfduid=1a1d45v141f9n19s810b
[HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.9
[HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/awebp,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
[HTTP_USER_AGENT] => Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36
[HTTP_UPGRADE_INSECURE_REQUESTS] => 1
[HTTP_CF_VISITOR] => {"scheme":"https"}
[HTTP_X_FORWARDED_PROTO] => https
[HTTP_CF_RAY] => 5656aff39c0ceb95-LAX
[HTTP_X_FORWARDED_FOR] => 2001:470:c:573::2333
[HTTP_CF_IPCOUNTRY] => US
[HTTP_ACCEPT_ENCODING] => gzip
[HTTP_CONNECTION] => Keep-Alive
[HTTP_HOST] => blog.xcnya.cn
[PATH_INFO] => 114514
[REDIRECT_STATUS] => 200
[SERVER_NAME] => blog.xcnya.cn
[SERVER_PORT] => 443
[SERVER_ADDR] => 2606:4700:3036::2333:2333
[REMOTE_PORT] => 11451
[REMOTE_ADDR] => 2606:4700:3036::2333:2333
[SERVER_SOFTWARE] => cloudflare
[GATEWAY_INTERFACE] => CGI/1.1
[REQUEST_SCHEME] => https
[SERVER_PROTOCOL] => HTTP/1.1
[DOCUMENT_ROOT] => /www/wwwroot/blog.xcnya.cn
[DOCUMENT_URI] => /114514.php
[REQUEST_URI] => /114514.php
[SCRIPT_NAME] => /114514.php
[CONTENT_LENGTH] =>
[CONTENT_TYPE] =>
[REQUEST_METHOD] => GET
[QUERY_STRING] =>
[SCRIPT_FILENAME] => /www/wwwroot/blog.xcnya.cn
[FCGI_ROLE] => RESPONDER
[PHP_SELF] => /114514.php
[REQUEST_TIME_FLOAT] => 1656230855.1145
[REQUEST_TIME] => 1656230855
)*

按 Ctrl+F,在裡面搜索你的 IP 地址 2001:470:c:573::2333

得到對應的項為
HTTP_CF_CONNECTING_IP

用 PHP 獲取

<?php
$ipaddr=$_SERVER['HTTP_CF_CONNECTING_IP'];
echo $ipaddr
?>

然後就能得到真實的使用者 IP 地址

那麼如何應用到 Typecho 呢
在網站根目錄的找到 config.inc.php
在該檔案的末尾空幾行添加以下內容

define('__TYPECHO_IP_SOURCE__', 'CF_CONNECTING_IP');  //去掉HTTP_

保存後打開網站
自己在評論區裡隨便發條評論
發現已經是使用者真實的 IP 了,而不是 CDN 的了

此操作不會改變現有評論區使用者的 IP,操作後資料庫中原有使用者顯示的 CDN IP 不會變化:::

此文由 Mix Space 同步更新至 xLog
原始連結為 https://blog.nekorua.com/posts/maintain/14.html


載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。