tIdIpVersion 的枚举是什么?



我使用delphi seattle,其indy版本是10.6.2.5311。德尔菲中包含的印地参考版本是 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 源代码是公开的:

https://svn.atozed.com:444/svn/Indy10/trunk(用户名:Indy-Public-RO,密码空白)

TIdIPVersion的声明如下:

type
   TIdIPVersion = (Id_IPv4, Id_IPv6);

代码无法编译的原因是 uses 子句中缺少一个单元。此类型在IdGlobal单元中定义。将该单元添加到 uses 子句中,代码将按原样编译。

最新更新