ProxyServer.Bindings.Clear;
with ProxyServer.Bindings.Add do
begin
  IPVersion := Id_IPv4;
  IP := '127.0.0.1';
  Port := 8080;
end;
with ProxyServer.Bindings.Add do
begin
  IPVersion := Id_IPv6;
  IP := '::1';
  Port := 8080;
end;

Tillämpa detta på den inaktiva befintliga TIdHTTPProxyServer, använd sedan dess normala aktivering. Loopback-adresserna accepterar medvetet endast lokala klienter; fjärranvändning kräver nåbara gränssnittsadresser och åtkomstkontroller. Verifiera den resulterande åtkomstgränsen innan du exponerar den lyssnaren.

De inkommande bindningarna och den utgående socketen utför olika uppgifter:

SocketFamiljeval
Klienten når proxynVarje explicit Bindings-post
Proxyn når nästa hoppKontextens OutboundClient.IPVersion

En IPv6-lyssnare tvingar därför inte varje destination till IPv6. Om arbetsbelastningen kräver en explicit nästa hopp-familj, ange den i OnHTTPBeforeCommand innan den klienten ansluter, i linje med den avsedda destinationsvägen.

Skilj lyssnarfel från nästa hopp-fel när ena sidan fungerar. Att förlita sig på automatiska bindningar kan annars föra in plattformsberoende antaganden i jämförelsen.

Relaterade artiklar