2012-07-05 46 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