首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >德尔福Web.HTTPApp.TWebRequest RemoteIP对RemoteAddr

德尔福Web.HTTPApp.TWebRequest RemoteIP对RemoteAddr
EN

Stack Overflow用户
提问于 2017-08-28 13:41:33
回答 1查看 916关注 0票数 1

TWebRequest有两个元来检索客户端IP地址:

  1. RemoteIP
  2. RemoteAddr

来自RemoteIP博士

指定与HTTP请求消息关联的远程目标计算机的IP。读取RemoteIP属性以获取与HTTP消息关联的远程目标计算机的IP地址。

来自RemoteAddr博士

指示与HTTP请求消息关联的客户端的远程IP地址。读取RemoteAddr以获取Web客户端请求源的IP地址。

它们看起来非常接近,但是RemoteIP返回一个空字符串。我要检索客户端ip地址,正确的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-28 15:33:22

如果我们查看源代码,我们将在TWebRequest的声明中找到以下内容

代码语言:javascript
运行
复制
property RemoteIP: string read GetRemoteIP;
property RemoteAddr: string index 21 read GetStringVariable;

执行情况:

代码语言:javascript
运行
复制
function TWebRequest.GetRemoteIP: string;
begin
  Result := EmptyStr;
end;

GetStringVariable是一种虚拟方法。

让我们看看其中一个子类-- TISAPIRequest,我们将发现以下内容:

代码语言:javascript
运行
复制
LResult := GetFieldByNameA(ServerVariables[Index]);

ServerVariables21是“REMOTE_ADDR”报头,它显示客户机或代理服务器的IP。

但是GetRemoteIP没有实现。

看起来RemoteIP没有在请求中使用,因为TCGIRequest、TApacheRequest和TWinCGIRequest也没有实现GetRemoteIP。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45920491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档