[英]Get clients ip address in a RemObjects webservice
我有一個使用RemObjects通過Delphi XE實現的web服務,我想知道客戶請求的IP地址。 我的服務繼承自TRORemoteDataModule
,我沒有找到任何方法或對象來做到這一點。
有什么建議嗎? 謝謝
注意:我認為我需要的信息是在方法self.transport.GetTransportObject()
返回,但它返回一個TObject,我不知道如何提取這些信息
這是我從SuperChannel獲取它的方式:
procedure TMyInterface.RORemoteDataModuleGetDispatchInfo(const aTransport: IROTransport; const aMessage: IROMessage);
var
tcpinfo: IROTCPTransport;
Session: TCustomSession;
szClientIP : String;
begin
Session := TCustomSession(Self.Session);
if Supports(aTransport, IROTCPTransport, tcpinfo) then
begin
szClientIP := tcpinfo.ClientAddress;
if (not Session.ShownTCP) or (Session.TCPAddress <> szClientIP) then
begin
Session.TCPAddress := szClientIP;
Session.Report(leInformation, 'TCP address ' + szClientIP);
Session.ShownTCP := True;
end;
end
else
begin
Session.Report(leInformation, 'TCP address not available');
end;
end;
您使用它的具體細節取決於您,但您必須在設置時獲取它,並將其存儲在會話對象中,如果您想稍后再選擇它。 我實現了一個自定義會話來保存客戶端IP,以便我可以在進一步調用時隨時獲取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.