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!

01-12-2019 12:31
#2323

Even voor een snuffelaar.
Waar moet ik het script precies plaatsen? Kan ik deze op de webservice van mijn Synology laten draaien of dien ik die ergens anders te zetten?

18-12-2019 09:08
#2336

Leuk.
Je kan ook een CNAME naar een record bij een DDNS zetten; veel CPE routers hebben ingebouwde ondersteuning voor veel van dergelijke providers.

OpenWRT's DDNS ondersteunt zelfs heel veel van die providers [1], maar nog voor DirectAdmin (DA) gebaseerd DNS beheer.
Onder [2] staat een aanzet voor integratie van DA in OpenWrt's DDNS.

[1] https://openwrt.org/docs/guide-user/services/ddns/client
[2] https://github.com/eyjohn/DynDnsDA

24-02-2020 14:24
#2454

Hey Jeroen,

Leipe post! Wie had gedacht dat Dynamic DNS zo makkelijk kon zijn.
Ik heb voor het gemak de boel op Github gezet.
@Stephan S helpt dit jou verder?

11-12-2021 19:39
#3451

Dag iedereen, ik heb toegang tot mijn "Home Assistant" die thuis draait op een raspberry pi 4 via DuckDNS, maar graag had ik hiervoor mijn eigen subdomain van mijn vimexx hosting pakket gebruikt ipv DuckDNS.

Dan vond ik via google deze post. Fantastisch!...alleen begrijp ik niet goed wat ik precies invul in mijn situatie en waar ik de file plaats. Kan iemand even controleren of ik het goed voorheb?

  1. Ik plaats https://files.directadmin.com/services/all/httpsocket/ + de PHP file zoals beschreven hierboven op mijn hosting bij vimexx en stel een Cronjob in die de PHP file regelmatig oproept
  2. ik vul de waardes in de PHP file in als volgt 

$server_login="mijn eigen directadmin username";
$server_pass="mijn eigen directadmin password";
$server_host="web0092.zxcs.be"; //where the API connects to
$server_ssl="Y";
$server_port=2222;
$domains = ["homeassistant.mijndomeinnaambijvimexx.be"];

Wil er iemand mij eventueel wat extra duiding geven?

Alvast bedankt!

11-12-2021 19:57
#3452

...en ik voeg natuurlijk een a record toe in mijn directadmijn bij vimexx met waarde "homeassistant" en het IP adres van mij thuis/raspberry pi

12-12-2021 17:27
#3454

Met bovenstaande stappen krijg ik dit als reactie van de php file: "Public IP has changed", "updating dns.." "Cannot View Dns Record" ["details"]=> string(29) "Domain does not belong to you"

Vreemd. Iets zoals homeassistant.mijndomeinnaambijvimexx.be is wel degelijk mijn eigen domein en die werkt om mijn home assistant te bereiken?

15-08-2022 23:04
#3862

Interessant dit! Helaas heb ik te weinig kaas gegeten van code/netwerken om helemaal te snappen hoe dit praktisch in zijn werk gaat blush

Ik heb zelf een RPI4 met daar o.a. Homebridge en Jellyfin op draaien. Graag zou ik de RPI van buitenaf bereikbaar krijgen (en houden). Nu kan ik een uitgebreid Youtube verhaal volgen en alles via Cloudflare laten lopen (https://www.addictedtotech.net/install-cloudflare-docker-on-raspberry-pi-4/). Maar het is natuurlijk veel eleganter en overzichtelijker om gewoon een apart subdomein aan te maken en het via Vimexx te laten lopen (rpi.voorbeeldadres.nl). 

Nu bestaat deze code van Jeroen dus met vervolgens een Github pagina van Axel. Maar hoe krijg ik dat als noob geïnstalleerd?

Groeten,

Robert 

- 5 van 5 sterren -