Vimexx Facebook

Onderwerp: Dyndns mogelijk via DirectAdmin API bij Vimexx

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");
}
?>
 

 

04-12-2018 19:39
#1782

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

15-01-2019 20:36
#1840

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

15-11-2019 15:56
#2304

Als kersvers vimexx user was ik benieuwd naar deze optie om extern in m'n thuisnetwerk te komen (werk nu met een NAS-provided ddns). Had nooit verwacht dat google uitgerekend een vimexx topic hierover zou weergeven! Ga dit zsm proberen en ben optimistisch over de uitkomst! Thanks!