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

Luca Olivetti luca at ventoso.org
Thu Jan 7 16:59:15 CET 2021


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).
Another option is that  TSocketStream.GetRemoteAddress cannot get the 
address (if fpGetPeerName fails).

Bye
-- 
Luca



More information about the fpc-pascal mailing list