Vimexx Facebook

Onderwerp:

Dyndns mogelijk via DirectAdmin API bij Vimexx

Naam: Jeroen S

Titel: Member

Geplaatst op 04-12-2018 19:36

Via de directadmin api kan iedere klant van vimex zijn a records updaten op het moment dat het public ip gewijzigd is. Zo kun je een domeinnaam veilig aan het ip van je (thuis) server hangen.

Link naar httpsocket: https://files.directadmin.com/services/all/httpsocket/

Script:

<?php

include 'httpsocket.php';

$server_login="username";
$server_pass="password";
$server_host="webXXXX.zxcs.nl"; //where the API connects to
$server_ssl="Y";
$server_port=2222;
$domains = ["domein1.nl", "domein2.nl", "domein3.nl", "domein4.nl", "domein5.nl", "domein6.nl"];

$url='http://ipecho.net/plain';
$ch=curl_init();
$timeout=5;

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$publicip=curl_exec($ch);

echo ("Public IPV4=".$publicip."\n");

curl_close($ch);

$data = json_decode(file_get_contents("directadminddns.dat"), true);
 
if ($data["publicip"] != $publicip)
{
    echo ("Public IP has changed to $publicip, updating dns...\n"); 

    foreach ($domains as $domain)
    {
 
    $sock = new HTTPSocket;
    if ($server_ssl == 'Y')
    {
        $sock->connect("ssl://".$server_host, $server_port);
    }
    else
    { 
        $sock->connect($server_host, $server_port);
    }
 
    $sock->set_login($server_login,$server_pass);
 
    $sock->query('/CMD_API_DNS_CONTROL',
        array(
            'domain' => $domain,
        ));

    $result = $sock->fetch_parsed_body();
    var_dump ($result);

    $sock->query('/CMD_API_DNS_CONTROL',
        array(
            'domain' => $domain,
            'action' => 'select',
            'arecs0' => 'name='.$domain.'.',
        ));

    $result = $sock->fetch_parsed_body();
    var_dump ($result);

    $sock->query('/CMD_API_DNS_CONTROL',
        array(
            'domain' => $domain,
            'action' => 'add',
            'type' => 'A', 
            'name' => $domain.'.',
            'value'    => $publicip,
        ));


    $result = $sock->fetch_parsed_body();

    }

        $data = array();
    $data["publicip"] = $publicip;
    file_put_contents("directadminddns.dat", json_encode($data));
}
else
{
    echo ("Public IP not changed, no update needed\n");
}
?>
 

 

Datum 04-12-2018 19:36:45

Naam: Jeroen S

Titel: Member

Geplaatst op 04-12-2018 19:39

Vergeet niet zelf even een cname voor www (en eventueel andere gewenste subdomeinen) aan te maken naar je domein

Datum 04-12-2018 19:39:02

Naam: Arnoud R

Titel: Member

Geplaatst op 15-01-2019 20:36

Beste Jeroen,

Bedankt voor je handleiding! Dit kende ik zelf ook nog niet, eerlijk gezegd.
Erg leuk om te zien dat er dergelijke bijdragen van klanten zijn aan het forum!

Met vriendelijke groet,
Arnoud Rutgers
Medewerker Klantenservice

Datum 15-01-2019 20:36:13 | Gewijzigd op 2019-01-22 20:52:55