Example #1
0
/**
 * Gets the current DNS records when the Domain is using DNS farm nameservers
 * @param $params
 * @return array
 */
function domainbox_GetDNS($params)
{
    $authParameters = getAuthParameters($params);
    $apiEndpoint = $params["TestMode"] ? "https://sandbox.domainbox.net/?WSDL" : "https://live.domainbox.net/?WSDL";
    $queryDnsRecordsParameters = new QueryDnsRecordsParameters();
    $queryDnsRecordsParameters->Zone = $params["sld"] . '.' . $params["tld"];
    $hostRecords = array();
    try {
        $parameters = array('AuthenticationParameters' => $authParameters, 'CommandParameters' => $queryDnsRecordsParameters);
        $client = new SoapClient($apiEndpoint, array('soap_version' => SOAP_1_2));
        $result = $client->QueryDnsRecords($parameters);
        $result = $result->QueryDnsRecordsResult;
        if ($result->ResultCode == 100) {
            if ($result->TotalResults > 1) {
                foreach ($result->Records->DnsRecordQueryResult as $dnsRecord) {
                    $hostRecords[] = array('hostname' => $dnsRecord->HostName, 'type' => $dnsRecord->RecordType, 'address' => $dnsRecord->Content, 'priority' => $dnsRecord->Priority);
                }
            } else {
                foreach ($result->Records as $dnsRecord) {
                    $hostRecords[] = array('hostname' => $dnsRecord->HostName, 'type' => $dnsRecord->RecordType, 'address' => $dnsRecord->Content, 'priority' => $dnsRecord->Priority);
                }
            }
        }
    } catch (Exception $e) {
        //TODO: Find out a way to return error to WHMCS.
    }
    return $hostRecords;
}