[fpc-pascal] fcl-web: Trequest.RemoteAddr is empty (sometimes)

Michael Van Canneyt michael at freepascal.org
Fri Jan 8 11:06:04 CET 2021



On Fri, 8 Jan 2021, Luca Olivetti via fpc-pascal wrote:

> El 7/1/21 a les 16:59, Luca Olivetti via fpc-pascal ha escrit:
>> El 7/1/21 a les 16:15, Luca Olivetti via fpc-pascal ha escrit:
>>> Hello,
>>>
>>> I need to tailor the content based on the remote ip address.
>>> I use the property RemoteAddr of a TRequest, but sometimes it is empty.
>>> I see that it is a header, what I didn't see (yet, I'll trace through 
>>> the code later) is if it is sent from the remote host or is it filled 
>>> based on the ip address of the connection.
>>> If the former, is there a more reliable way to obtain the connected ip 
>>> address?
>>> If the latter is it a bug?
>> 
>> I now see that it set in TFPHTTPConnection.ReadRequestHeaders:
>>
>>     Result.RemoteAddress := SocketAddrToString(FSocket.RemoteAddress)
>> 
>> In turn SocketAddrToString returns an empty string if the address is 
>> ipv6, but in my case it shouldn't be (the clients, firefox under windows 
>> 10 uses the ipv4 address of the server and most of the time I get the 
>> correct remote address, even from the same client).
>
> Besides, it seems that the server only listens on ipv4.
> I'm puzzled, I really can't see where this empty RemoteAddress could 
> come from.

Are you using https ?

Michael.


More information about the fpc-pascal mailing list