【发布时间】:2026-01-30 04:10:01
【问题描述】:
我想知道是否有可能通过 telnet(或其他程序)建立与 LDAP 服务器的连接,并开始发出请求和接收响应,就像我通常使用 HTTP 所做的那样。其实这个问题比较笼统,和我对网络连接和通信协议的误解有关。让我告诉你我对这个话题的想法:
所有应用程序协议都定义了通信协议(即服务器将要理解并在其传递时采取行动的消息)。如果我知道应用程序协议是如何工作的,我可以建立与服务器的连接(控制该协议服务器端的守护程序)并开始与服务器通信。例如,使用 HTTP,我可以通过 telnet 建立与 HTTP SERVER 的连接,并开始使用以下请求与他交谈:
GET /users/pepito HTTP/1.1
Host: *
Content-Type: text/html
我预计任何应用程序协议都会发生此过程。这个概念对吗?
我看过LDAP Protocol Specification RFC,但我不明白消息的格式。我的意思是,我期待阅读诸如 HTTP 协议规范之类的内容;但这太笼统了。您能举个例子说明如何进行 LDAP 搜索吗?
【问题讨论】:
-
为什么您“希望任何应用程序协议都会发生这种情况”?它在哪里说它们看起来都像 HTTP,在行中带有可读的标头? 其中一些 可以(FTP、SMTP、...)。他们中的更多人没有。
-
因为我无法想象其他方式可以建立通信。我需要向服务器发送一些东西,这些东西必须是可读的(可能是编码的,但是编码的“字符串”在第一个实例中是不可读的?)。其他协议如何管理?你能给我一个例子吗?谢谢朋友。
-
你不需要一个例子。您需要 LDAP 协议规范,并且需要被告知不能通过将其键入 Telnet 客户端手动发送。
-
为什么不呢?我认为一个例子对我非常有用。我的意思是,给出一个 ASN1 规范,这是以这种方式编码的,信息就是这样。我会发现这非常有用。至于你的最后一句话,为什么我不能通过直接输入 Telnet 客户端手动发送?如果我按照 LDAP 所说的 (ASN1 BER) 手动编码消息并通过 Telnet 发送该消息怎么办?这不可能吗?谢谢。
-
这没有任何意义。你不能举一个不存在的例子,不管它有多么有用。您根本无法在 Telnet 会话中键入二进制数据,并且如果不添加不属于协议一部分的换行符,您将无法让它发送任何内容。
标签: ldap network-protocols telnet