-1

我正在使用 fsock open 连接到 epp 服务器,但它失败了。下面是我的代码:(我在这里给出了错误的输入值。)

$whoisserver = "epp-test.verisign-grs.net";
$port = 123;
$timeout = 40;


$fp = @fsockopen($whoisserver, $port, $errno, $errstr, $timeout) or die("Socket Error " . $errno . " - " . $errstr);


$out = "";
while(!feof($fp)){
    $out .= fgets($fp, 128);
}

fclose($fp);


echo "<br> result <pre>\n" . $out . "\n</pre>\n <br>";

以下是我得到的错误:

Socket Error 10060 - A connection attempt failed because the connected party 
did not properly respond after a period of time, or established connection
failed because connected host has failed to respond.

Epp 服务器响应连接。但连接失败。

我也使用过 CURL,但在使用 curl 时没有得到任何响应:(此处输入错误)

$ch = curl_init();

// set URL and other appropriate options 
curl_setopt($ch, CURLOPT_URL, "epp-test.verisign-grs.net"); 
curl_setopt($ch, CURLOPT_PORT, 123); 
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 1);

 $res = curl_exec($ch); 
 echo "response is:<br>".$res."<br>";
 print "len[".strlen($res)."]\n"; 
 curl_close($ch);

注意:当我从命令行对 epp 服务器执行 ping 操作时。Ping 命令成功,我收到了来自 epp 服务器的回复。

如果我做错了什么?

我们不能从本地系统到 epp 服务器吗?

是否必须使用 SSL 连接到 epp 服务器?

4

2 回答 2

1

你从哪里得到的数据、服务器和端口?EPP 端口是 700,您可以在技术上对其进行测试

openssl s_client -connect epp-test.verisign-grs.net:700

但是威瑞信不允许在没有事先达成特殊协议并在他们这边为您建立防火墙规则的情况下连接到他们的服务器。

如果你只是在玩 EPP 并尝试调试你的脚本,你可能会考虑使用 CentralNIC,但你必须先向他们询问用户名和密码。

对于简单的“问候测试”,您可以使用:

openssl s_client -connect epp-ote.centralnic.com:700

同样,这不能通过 curl 工作。它可能在 PHP 中使用“ssl://epp-ote.centralnic.com”作为您的第一个参数。但是如果不先阅读 EPP 规范,您将无法摆脱 feof($fp) 和其他代码:

于 2013-05-10T16:19:20.943 回答
0

根据RFC5734,对于 EPP,TLS 确实是强制性的:

当在 TCP 上分层时,传输层安全 (TLS) 协议版本 1.0 [RFC2246] 或其后续版本(例如 TLS 1.2 [RFC5246]),使用双方支持的最新版本,必须用于提供完整性、机密性和相互强客户端-服务器身份验证。

于 2017-05-11T19:12:23.497 回答