Xml 连接到域注册表EPP服务器
我需要一些指针和一小部分连接到epp服务器的代码。代码示例需要登录并发送一个命令并接收响应(XML)。 代码可以是php或python 我相信这将为我进一步深入研究和了解这个主题奠定基础。这把我逼疯了——这是一种很好的方式,因为我想在一天或一千年内解决它 我已经搜索了好几天了,但似乎无法理解找到的信息,而且 现在选择在这里寻求指导Xml 连接到域注册表EPP服务器,xml,ssl,epp,Xml,Ssl,Epp,我需要一些指针和一小部分连接到epp服务器的代码。代码示例需要登录并发送一个命令并接收响应(XML)。 代码可以是php或python 我相信这将为我进一步深入研究和了解这个主题奠定基础。这把我逼疯了——这是一种很好的方式,因为我想在一天或一千年内解决它 我已经搜索了好几天了,但似乎无法理解找到的信息,而且 现在选择在这里寻求指导 提前感谢您。这是php脚本示例 <?php class Epp { var $socket; public function __construct(
提前感谢您。这是php脚本示例
<?php
class Epp
{
var $socket;
public function __construct()
{
}
private $_connected = false;
function connect($host, $port = 700, $timeout = 1, $ssl = true)
{
if ($this->_connected)
return true;
$target = sprintf('%s://%s', ($ssl === true ? 'ssl' : 'tcp'), $host);
$socket = fsockopen($target, $port, $errno, $errstr, $timeout);
if (!$socket) {
return new PEAR_Error("Error connecting to $target: $errstr (code $errno)");
} else {
$this->socket = $socket;
$this->_connected = true;
return $this->getFrame();
}
}
function getFrame()
{
if (feof($this->socket))
return new PEAR_Error("Connection appears to have closed.");
$hdr = @fread($this->socket, 4);
if (empty($hdr)) {
return new PEAR_Error("Error reading from server: $php_errormsg");
} else {
$unpacked = unpack('N', $hdr);
$answer = fread($this->socket, ($unpacked[1] - 4));
return $answer;
}
}
function sendFrame($xml)
{
return @fwrite($this->socket, pack('N', (strlen($xml) + 4)) . $xml);
}
function disconnect()
{
return @fclose($this->socket);
}
}
?>
有4个函数,connect,getFrame,sendFrame,disconnect。
Epp协议的工作原理如下。
首先,您必须连接到服务器
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<login>
<clID><?php echo $username;?></clID>
<pw><?php echo $password;?></pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<svcExtension>
</svcExtension>
</svcs>
</login>
<clTRID>12345</clTRID>
</command>
</epp>
向服务器发送xml请求并从服务器接收xml响应
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<login>
<clID><?php echo $username;?></clID>
<pw><?php echo $password;?></pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<svcExtension>
</svcExtension>
</svcs>
</login>
<clTRID>12345</clTRID>
</command>
</epp>
首先,您必须登录到服务器。为此,必须将登录xml发送到服务器
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<login>
<clID><?php echo $username;?></clID>
<pw><?php echo $password;?></pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<svcExtension>
</svcExtension>
</svcs>
</login>
<clTRID>12345</clTRID>
</command>
</epp>
1
EN
12345
所有请求和响应都是xml。您可以从这些站点找到XML
这是一个php脚本示例
<?php
class Epp
{
var $socket;
public function __construct()
{
}
private $_connected = false;
function connect($host, $port = 700, $timeout = 1, $ssl = true)
{
if ($this->_connected)
return true;
$target = sprintf('%s://%s', ($ssl === true ? 'ssl' : 'tcp'), $host);
$socket = fsockopen($target, $port, $errno, $errstr, $timeout);
if (!$socket) {
return new PEAR_Error("Error connecting to $target: $errstr (code $errno)");
} else {
$this->socket = $socket;
$this->_connected = true;
return $this->getFrame();
}
}
function getFrame()
{
if (feof($this->socket))
return new PEAR_Error("Connection appears to have closed.");
$hdr = @fread($this->socket, 4);
if (empty($hdr)) {
return new PEAR_Error("Error reading from server: $php_errormsg");
} else {
$unpacked = unpack('N', $hdr);
$answer = fread($this->socket, ($unpacked[1] - 4));
return $answer;
}
}
function sendFrame($xml)
{
return @fwrite($this->socket, pack('N', (strlen($xml) + 4)) . $xml);
}
function disconnect()
{
return @fclose($this->socket);
}
}
?>
有4个函数,connect,getFrame,sendFrame,disconnect。
Epp协议的工作原理如下。
首先,您必须连接到服务器
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<login>
<clID><?php echo $username;?></clID>
<pw><?php echo $password;?></pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<svcExtension>
</svcExtension>
</svcs>
</login>
<clTRID>12345</clTRID>
</command>
</epp>
向服务器发送xml请求并从服务器接收xml响应
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<login>
<clID><?php echo $username;?></clID>
<pw><?php echo $password;?></pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<svcExtension>
</svcExtension>
</svcs>
</login>
<clTRID>12345</clTRID>
</command>
</epp>
首先,您必须登录到服务器。为此,必须将登录xml发送到服务器
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:ietf:params:xml:ns:epp-1.0
epp-1.0.xsd">
<command>
<login>
<clID><?php echo $username;?></clID>
<pw><?php echo $password;?></pw>
<options>
<version>1.0</version>
<lang>en</lang>
</options>
<svcs>
<svcExtension>
</svcExtension>
</svcs>
</login>
<clTRID>12345</clTRID>
</command>
</epp>
1
EN
12345
所有请求和响应都是xml。您可以从这些站点找到XML
最初由提问者发布作为回答:“花了一段时间,但我找到了我想要的kickstart。现在我会很忙。似乎很难获得这方面的信息。无论如何,坚持总是赢。”最初由提问者发布作为回答:“花了一段时间,但我找到了我想要的kickstart。现在我要忙了。这方面的信息似乎很难获得。无论如何,坚持总是胜利的。”