
TRegistry reg = new TRegistry;
reg->RootKey = HKEY_CURRENT_USER;
if (reg->OpenKey("\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings",false))
if (reg->ValueExists("ProxyServer"))
ShowMessage(reg->ReadString("ProxyServer"));
reg->CloseKey();
delete reg;
reg = NULL;nginx 反向代理是什么?
为了提高吞吐量,有些服务器是专门跑程序用的,有些服务器是跑静态资源的。
你可能访问一个网页,里面有,而这个并不是你访问的这个网页的服务器,也叫前端服务器,而是你的请求被 Nginx 转发到了一台后端服务器,由后端服务器提供给前端服务器再返回到客户端的。
我这台 nginx 的配置非常细致,有 nginxconf ,在这个配置中包含了两个文件夹,一个是 sites-available ,一个是 sites-enabled , nginxcof 一般用来做整个 nginx 的配置。
域名配置段在 sites-avaliable 下,然后建立一个软连接到 sites-enabled 下去。
反向代理就写在域名配置段里,客户端通过访问服务器,服务器将请求分配按照 server 段里的则正匹配,将请求按照 fastcgi 发送到 php-fpm 通过分配再到我们的程序。
反向代理一样,也需要通过正则来捕捉到用户的请求。(2018-12-9,现在流行的做法是将静态资源全部压缩打包,丢到cdn上去,服务器基本只做端口转发,>您好,XXXXXXX系列IP,而这个函数获取的是局域网网关出口的IP地址,如果访问者使用代理服务器,将不获取代理服务器的IP,而是获取访问者网关的真实IP。如果将这个函数应用到限IP访问的网页中,别人即使通过限IP访问段中的代理服务器,也不能访问该页面。
下面提供一个函数:<php
// 定义一个函数getIP()
function getIP(){global $ip;
if (getenv(">通过Nginx获取用户真实IP
nginx配置
location / {
proxy_set_header Host $host;
proxy_set_header X-real-ip $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
如上面配置,接口需要使用的时候获取X-real-ip就可以,但是经过测试以后,发现X-real-ip并不是真实的用户IP,而是Nginx代理服务器的IP,原因就是经过多级代理,$remote_addr是上一级的IP。
名词解释
$remote_addr
获取到上一级代理的IP
proxy_add_x_forwarded_for
获取到结果例如:(2231046125, 10101045),第一个是用户的真实IP,第二个是一级代理的IP,依此类
通过上面的分析我们可以从proxy_add_x_forwarded_for中获取到用户的真实IP,使用正则匹配获取第一个即可,如下:
location / {
proxy_set_header Host $host;
set $Real $proxy_add_x_forwarded_for;
if( $Real ~ (\d+)\(\d+)\(\d+)\(\d+),() ){
set$Real $1$2$3$4;
}
proxy_set_header X-real-ip $Real;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
也可以通过后台的程序,从请求的header里获取X-Forwarded-For,然后取起一个值即可
文章来自: >使用代理服务器的第一步是要获取代理服务器的IP地址和端口信息,我们可以使用搜索引擎到网上搜索,而使用“QQ代理公布器”可以很快速地找到合适的代理服务器。
提示:
1为了获得工作状态正常的服务器IP地址,在搜索之前选择“是否测试代理”选项,这样搜索到的服务器使用成功率将更高。
2QQ程序目前支持两种代理服务器,一个是Socks5,另一个是>
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)