什么是tIdIpVersion的枚举?

时间:2016-02-22 17:11:49

标签: delphi indy

我使用delphi西雅图,其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;

2 个答案:

答案 0 :(得分:3)

您可以在单位IdGlobal

中找到枚举
  TIdIPVersion = (Id_IPv4, Id_IPv6);

您可以自行查看,因为Indy源代码为publicly available

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

答案 1 :(得分:1)

TIdIPVersion的声明如下:

type
   TIdIPVersion = (Id_IPv4, Id_IPv6);

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