Vimexx Facebook

Onderwerp: Dyndns mogelijk via DirectAdmin API bij Vimexx - Pagina 2

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

 

06-06-2023 15:08
#4483

Hoi!

Waar vind ik ergens de server_host? Ik heb geen hosting pakket, enkel een domeinnaam bij Vimexx.

Dank!
Tom

 
20-03-2024 22:33
#4905

Hallo mede gebruikers,

Helaas krijg ik het ook niet werkend. Ik plaats beide bestanden op een webserver die ik thuis heb draaien. Het eerste bestand is het php bestand met het script zoals hier in deze post gemeld met de specifieke gegevens voor toegang tot mijn domeinnaam. Het tweede bestand is httpsocket.php
Op het moment dat ik beide php bestanden op de webserver heb staan en dit benader via de webbrowser dan krijg ik de melding “"Cannot View Dns Record" ["details"]=> string(29) "Domain does not belong to you"". Helaas kan ik deze foutmelding niet herleiden.

Is er iemand die het inmiddels wel werkend heeft met deze bestanden? Dit is hetzelfde probleem als Rien V heeft gemeld. Echter is hier geen reactie opgekomen.

Ik heb ook de bestanden van Github geprobeerd (inclusief het credentials.json bestand). Ook hier helaas dezelfde melding.
Is deze functionaliteit misschien geblokkeerd door Vimexx?

Wie o wie kan een helpende hand aanreiken?

Groeten, Dion

18-04-2024 03:31
#4950

Hallo allemaal, een nieuwe versie van dit script vind je op https://github.com/brechtwyns/DirectAdmin-DDNS. De code is aangepast zodat IPv4 gebruikt wordt i.p.v. IPv6, wat je toelaat om het A-record te blijven gebruiken.

Deze aanpassing liet mij toe om de DDNS oplossing op een Raspberry Pi te runnen met gebruik van één IP (v4) adres voor mijn thuisnetwerk. Dit overkomt mogelijke problemen met firewall instellingen voor IPv6 adressen (zoals o.a. bij Proximus / Mobile Vikings in België). 

- 5 van 5 sterren -