0

我整天都在寻找代码的过程中,现在我决定把它写在这里。

首次登录:

<epp xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<login>
<clID>ClientX</clID>
<pw>epp123</pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<objURI>urn:ietf:params:xml:ns:domain-1.0</objURI>
<objURI>urn:ietf:params:xml:ns:contact-1.0</objURI>
<svcExtension>
<extURI>http://test/epp/xml/schema/contact-ext-1.0</extURI>
</svcExtension>
</svcs>
</login>
<clTRID>ABC-12345</clTRID>
</command>
</epp>

然后:一些 XML

然后注销:

<epp xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0 epp-1.0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<logout />
<clTRID>ABC-12345</clTRID>
</command>
</epp>

如何发送这些数据,然后从服务器接收数据?谁能给我发个例子?

谢谢

4

2 回答 2

2

如何发送这些数据,然后从服务器接收数据?

仔细阅读RFC 5734“基于 TCP 的可扩展供应协议 (EPP) 传输” 。

当然,要真正理解它,您需要阅读所有关于 EPP 的 RFC,即 RFC 5730 到 5733,然后如果您认真考虑成为注册商,则需要阅读 RGP 上的和 secDNS-1.1 上的2 个主要扩展几乎无处不在。然后当然是注册特定的扩展(我相信你正在尝试连接到 EURid 或 DNSBelgium)。

简而言之:

  • 打开一个到注册表 EPP 服务器的 TLS 套接字,通常在端口 700 上
  • 正确执行您的加密:验证服务器证书!
  • 开始阅读,因为服务器首先说话,与<greeting>
  • 提取objURIextURI从那里正确构建您的<login>(检查哪些扩展是强制性的注册表文档)
  • 发送你的<login>框架
  • 检查返回码,然后执行所有其他命令/响应。

确保从 RFC 5734 中了解每个 EPP 帧必须以 4 个八位字节为前缀,编码帧的长度:在输入(来自注册表)时,这让您知道您正在获取多少数据,在输出时您必须正确生成它,否则注册表将不会读取您的响应。

如果您刚进入注册商领域,从头开始构建合适的 EPP 客户端可能不是最理想的工作,我不一定建议您这样做。有很多小细节需要正确处理,特别是如果您计划连接到不同的注册表。

如果您在EPP此处搜索标签,您可以轻松找到其他问题以及应该对您有所帮助的答案:

您还可以发现存在 PHP 库来执行 EPP,因此这可能会为您节省一些时间(并使您在理解该库并将其适应您自己的生态系统方面有所松懈)。请参阅centralnic PHP EPP 库 -例如潜在客户的登录框架。

PS:我参与了 EPP 规范,并在过去 20 年左右的时间里编写了多个 EPP 客户端和服务器。

于 2020-06-30T03:34:22.213 回答
1

首先,您需要检查服务器 API 期望如何接收此数据。到目前为止,我们知道它需要 XML,但是如何传递 XML?你应该问的问题:

  • 我尝试与之交互的 API 类型是什么?
  • 它是 XML-RPC 吗?肥皂?也许是 REST API?
  • 它是自定义 API 吗?
  • 什么是 API 端点?
  • 这个 API 有手册吗?

大多数 Web API 的底层传输机制是通过 HTTP 请求。为此,您可以使用 PHP 原生库(如cURL )或 PHP 库(如Guzzle)。如果您正在处理 REST API,Guzzle 是一个不错的选择。

但是,如果您正在处理 SOAP API,您还可以找到更具体的库,例如SOAP 客户端

更新

我刚刚意识到 EPP 是协议。如果此链接有帮助,请告诉我,它使用 cURL:

https://doc.openprovider.eu/Example_Script_EPP_PHP

于 2020-06-29T21:01:21.887 回答