tIdIpVersion 的枚举是什么?
What are the enumerations of tIdIpVersion?
我用的是delphi seattle,其indy版本是10.6.2.5311。 delphi 中包含的 Indy 参考版本是 10.1.5。
我尝试在本地网络中获取 ipv4 的 ip 地址。
西雅图无法识别 tIdIpVersion、id_ipv4 和 id_ipv6 的枚举。我猜他们被改变了。我无法进入 tIdIpVersion,因为我使用的是试用版。
procedure TForm1.FormCreate(Sender: TObject);
var
_AddressList: TIdStackLocalAddressList;
_Address: TIdStackLocalAddress;
i: Integer;
begin
_AddressList := TIdStackLocalAddressList.Create;
TIdStack.IncUsage;
GStack.GetLocalAddressList(_AddressList);
for i := 0 to _AddressList.Count - 1 do
begin
_Address := _AddressList[i];
if _Address.IPVersion = id_ipv4 then // id_ipv4 is not identified.
begin
Memo1.Lines.Add(_Address.IPAddress);
end;
end;
TIdStack.DecUsage;
_AddressList.Free;
end;
您可以在IdGlobal
单元中找到枚举
TIdIPVersion = (Id_IPv4, Id_IPv6);
您可以自己轻松检查,因为 Indy 源代码是 publicly available:
https://svn.atozed.com:444/svn/Indy10/trunk(用户名:Indy-Public-RO,密码为空)
TIdIPVersion
的声明如下:
type
TIdIPVersion = (Id_IPv4, Id_IPv6);
您的代码无法编译的原因是您的 uses
子句中缺少一个单元。此类型在 IdGlobal
单元中定义。将该单元添加到您的 uses
子句中,您的代码将按原样编译。
我用的是delphi seattle,其indy版本是10.6.2.5311。 delphi 中包含的 Indy 参考版本是 10.1.5。
我尝试在本地网络中获取 ipv4 的 ip 地址。
西雅图无法识别 tIdIpVersion、id_ipv4 和 id_ipv6 的枚举。我猜他们被改变了。我无法进入 tIdIpVersion,因为我使用的是试用版。
procedure TForm1.FormCreate(Sender: TObject);
var
_AddressList: TIdStackLocalAddressList;
_Address: TIdStackLocalAddress;
i: Integer;
begin
_AddressList := TIdStackLocalAddressList.Create;
TIdStack.IncUsage;
GStack.GetLocalAddressList(_AddressList);
for i := 0 to _AddressList.Count - 1 do
begin
_Address := _AddressList[i];
if _Address.IPVersion = id_ipv4 then // id_ipv4 is not identified.
begin
Memo1.Lines.Add(_Address.IPAddress);
end;
end;
TIdStack.DecUsage;
_AddressList.Free;
end;
您可以在IdGlobal
TIdIPVersion = (Id_IPv4, Id_IPv6);
您可以自己轻松检查,因为 Indy 源代码是 publicly available:
https://svn.atozed.com:444/svn/Indy10/trunk(用户名:Indy-Public-RO,密码为空)
TIdIPVersion
的声明如下:
type
TIdIPVersion = (Id_IPv4, Id_IPv6);
您的代码无法编译的原因是您的 uses
子句中缺少一个单元。此类型在 IdGlobal
单元中定义。将该单元添加到您的 uses
子句中,您的代码将按原样编译。