【问题标题】:How can I find the LDAP server in the DNS with Indy?如何使用 Indy 在 DNS 中找到 LDAP 服务器?
【发布时间】:2013-08-19 08:40:51
【问题描述】:

使用nslookup 命令(在Windows 上)或host 在Linux 上命令,计算机可以查询DNS 以获得LDAP 服务器(请参阅https://serverfault.com/questions/153526/how-can-i-find-the-ldap-server-in-the-dns-on-windows)。

是否可以使用 Indy DNS 解析器组件进行这些查询?

nslookup -type=srv _ldap._tcp.DOMAINNAME

host -t srv _ldap._tcp.DOMAINNAME

【问题讨论】:

    标签: delphi dns ldap indy freepascal


    【解决方案1】:

    简单:

    program SO18309621;
    
    {$APPTYPE CONSOLE}
    
    uses
      IdDNSResolver,
      SysUtils;
    
    var
      Dns : TIdDNSResolver;
      Rec : TResultRecord;
      Srv : TSRVRecord;
      Index : Integer;
    begin
      try
        Dns := TIdDNSResolver.Create;
        try
          Dns.Host := 'mydnsserver.mydomain';
          Dns.QueryType := [qtService];
          Dns.Resolve('_ldap._tcp.mydomain');
          for Index := 0 to Dns.QueryResult.Count - 1 do
          begin
            Rec := Dns.QueryResult[Index];
            if Rec is TSRVRecord then
            begin
              Srv := TSRVRecord(Rec);
              Writeln('Target=', Srv.Target, ', Port=', Srv.Port, ', Priority=', Srv.Priority, ', Weight=', Srv.Weight);
            end;
          end;
        finally
          Dns.Free;
        end;
      except
        on E: Exception do
          Writeln(E.ClassName, ': ', E.Message);
      end;
    end.
    

    【讨论】:

    • 只是我的好奇心,程序名称 SO18309621;?
    • 其实 David Heffernan 开始这样做了(用 SO 帖子 id 命名项目),我只是一个模仿者:)。
    猜你喜欢
    • 2016-05-17
    • 2010-09-08
    • 1970-01-01
    • 2011-05-03
    • 2013-08-10
    • 2011-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多