[GH-ISSUE #284] frp大老板,网站无法获得浏览器用户ip地址啥时候解决啊 #207

Closed
opened 2026-05-05 11:59:42 -06:00 by gitea-mirror · 6 comments
Owner

Originally created by @soybacn on GitHub (Mar 28, 2017).
Original GitHub issue: https://github.com/fatedier/frp/issues/284

http网站无法获得浏览器用户ip地址,看到论坛里有 好几个人反馈了.可我更急着需要这个功能,所以我再发帖催你下啊
国内的ngrok有个服务器已经解决了,就是你之前说的加在 x-real-ip,但用户第一次连接时才传递真实IP地址,第2次连接值就为空了,隔3分钟后又传递了.
希望尽快解决.基于国内环境,GONGAN都要求网站登记访客ip地址.所以很需要这个功能.
ps:没想到frp大老板是中国人.自豪啊

Originally created by @soybacn on GitHub (Mar 28, 2017). Original GitHub issue: https://github.com/fatedier/frp/issues/284 http网站无法获得浏览器用户ip地址,看到论坛里有 好几个人反馈了.可我更急着需要这个功能,所以我再发帖催你下啊 国内的ngrok有个服务器已经解决了,就是你之前说的加在 x-real-ip,但用户第一次连接时才传递真实IP地址,第2次连接值就为空了,隔3分钟后又传递了. 希望尽快解决.基于国内环境,GONGAN都要求网站登记访客ip地址.所以很需要这个功能. ps:没想到frp大老板是中国人.自豪啊
Author
Owner

@befen commented on GitHub (Mar 28, 2017):

frps前面加个nginx

<!-- gh-comment-id:289644180 --> @befen commented on GitHub (Mar 28, 2017): frps前面加个nginx
Author
Owner

@mbj2014 commented on GitHub (Mar 29, 2017):

我的frps前面就有个nginx,是不是网站程序取x-real-ip就能得到真实客户IP了?

<!-- gh-comment-id:290248501 --> @mbj2014 commented on GitHub (Mar 29, 2017): 我的frps前面就有个nginx,是不是网站程序取x-real-ip就能得到真实客户IP了?
Author
Owner

@befen commented on GitHub (Mar 30, 2017):

function getonlineip() {
$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'])) {
$tmp = $_SERVER['HTTP_X_FORWARDED_FOR'];
preg_match_all('#\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}#s', $tmp, $matches);
foreach($matches[0] as $x_ip) {
if(!preg_match('#^(10|172.16|192.168).#', $x_ip)) {
$ip = $x_ip;
break;
}
}
}
return $ip;
}

<!-- gh-comment-id:290304519 --> @befen commented on GitHub (Mar 30, 2017): function getonlineip() { $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'])) { $tmp = $_SERVER['HTTP_X_FORWARDED_FOR']; preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $tmp, $matches); foreach($matches[0] as $x_ip) { if(!preg_match('#^(10|172\.16|192\.168)\.#', $x_ip)) { $ip = $x_ip; break; } } } return $ip; }
Author
Owner

@befen commented on GitHub (Mar 30, 2017):

nginx设置下
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

<!-- gh-comment-id:290304663 --> @befen commented on GitHub (Mar 30, 2017): nginx设置下 proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
Author
Owner

@soybacn commented on GitHub (Mar 31, 2017):

to:zhujinyan:
谢谢您的留言
我是win环境.你的getonlineip() 我测试过,通过获取remote_addr,X-Real-IP,HTTP_X_FORWARDED_FOR,这3个参数,均获取不到真实IP.

<!-- gh-comment-id:290590357 --> @soybacn commented on GitHub (Mar 31, 2017): to:zhujinyan: 谢谢您的留言 我是win环境.你的getonlineip() 我测试过,通过获取remote_addr,X-Real-IP,HTTP_X_FORWARDED_FOR,这3个参数,均获取不到真实IP.
Author
Owner

@openmynet commented on GitHub (Apr 23, 2017):

@soybacn #270

<!-- gh-comment-id:296437319 --> @openmynet commented on GitHub (Apr 23, 2017): @soybacn #270
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/frp#207
No description provided.