gpt4 book ai didi

delphi - 如何配置 Indy v10 支持 IPv4 + IPv6?

转载 作者:行者123 更新时间:2023-12-03 14:41:50 26 4
gpt4 key购买 nike

使用以下代码我可以获得 IPv4 网站的内容:

uses 
IdHttp;

IdHttp1 := TIdHttp.Create(nil);
try
Result := IdHttp1.Get('http://www.heise.de/')
finally
IdHttp1.Free;
end;

但是当我尝试连接到 IPv6 网站时,我收到套接字错误 # 11004:

IdHttp1 := TIdHttp.Create(nil);
try
Result := IdHttp1.Get('http://www.six.heise.de/')
finally
IdHttp1.Free;
end;

我可以正常 ping www.six.heise.de(IP 2a02:2e0:3fe:100::6:)并且 Firefox 可以毫无问题地显示该网站。

我需要在 Indy(SVN 的最新 V10 版本)中进行哪些更改才能连接到 IPv4 和 IPv6 网站?

最佳答案

TIdTCPClient 需要被告知是使用 IPv4 还是 IPv6 进行套接字和主机名到 IP 的解析。这是使用 TIdTCPClient.IPVersion 属性完成的。但是,TIdHTTP 是一种特殊情况,因为它在内部管理 TIdTCPClient 属性和连接,包括 IPVersionTIdHTTP 根据请求的 URL 设置 IPVersion。为了请求包含 IPv6 主机名的 URL,需要将其括在括号中,例如:

Result := IdHttp1.Get('http://[www.six.heise.de]/')

关于delphi - 如何配置 Indy v10 支持 IPv4 + IPv6?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15166939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com