2012-07-05 44 views
1

我得到我晕船,需要一些指针和连接到一个EPP服务器的代码一小部分。代码示例需要登录并发送一个命令并接收响应(以XML格式)。 代码可以在PHP或者Python。连接到域名注册EPP服务器

我相信这将形成一个基础/ Kickstart中对我来说,在进一步深入研究和了解更多关于这个话题。它的驾驶我逼疯了 - 在一个好办法,因为我想解决它在一天或一千元。

我一直在寻找天,但似乎无法理解所发现的信息,并且 现在选择在此寻求指导。

预先感谢您。

+0

最初由提问者发布作为回答:“花了一段时间,但我找到了我想要的kickstart,现在我会变得很忙,似乎这方面的信息很难无论如何,坚持永远赢得胜利。“ – bfavaretto 2012-07-24 21:49:57

回答

1

这是样品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个功能,连接,的getFrame,sendFrame,断开。 埃普协议的工作原理如下。 首先必须连接到服务器。

向服务器发送xml请求并从服务器接收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。而且你可以从这个网站找到xmls http://tools.ietf.org/html/rfc5732