Avatar billede sune56 Nybegynder
27. februar 2011 - 09:50 Der er 1 kommentar

Automatisk opdatering af DynDNS.dk domæne

Hej Eksperter,

Er der nogle som har erfaringer med DynDns.dk-Pro?
Jeg har i en rum tid nu, forsøgt at sætte dynamisk DNS op for autmatisk at mappe et domæne navn til en dynamisk IP adresse.

Jeg fik flyttet mit domænenavn til DynDns.dk's navneservere, og oprettede mig som bruger på DynDns.dk-Pro, med username og password. På DynDns.dk har jeg

registreret mit domæne-navn og oprettet en kode til at foretage ændringer. Jeg har oprettet en Dynamic record og verificeret at mapping foregår korrekt.

Min router er af mærket Thomson, og understøtter automatisk opdatering af IP information for en række dynamic DNS services, dog ikke DynDNS.dk. Der er nu

muligheden for at vælge "custom" og angive brugernavn og adgangskode. Jeg har prøvet forskellige kombinationer af mit brugernavn og adgangskode til DynDNS.dk og

domænenavn og adgangskode for domænet (som jeg oprettede for det givne domæne på DynDNS.dk). Jeg får en update fejl....

Jeg har forsøgt mig med update klienten: DirectUpdate (www.DirectUpdate.net), men når jeg forsøger at opdatere med denne, får jeg fejlmeddelelsen:

.
.
.
[DBG]- 27/Feb/2011 09:39:17 - in SEHTTPConnectionData::Send, before MakeConnectionReady
[DBG]- 27/Feb/2011 09:39:17 - SEHTTPConnectionData::MakeConnectionReady, dummy read done
[DBG]- 27/Feb/2011 09:39:17 - SEHTTPConnectionData::MakeConnectionReady, done with err 0x00000000
[DBG]- 27/Feb/2011 09:39:17 - Account update: In _URLSend sending URL done with err=0x00000000
[DBG]- 27/Feb/2011 09:39:17 - Account update: In _URLSend auth proxy loop begin
[DBG]- 27/Feb/2011 09:39:17 - Account update: In _URLSend auth proxy loop end
[DBG]- 27/Feb/2011 09:39:17 - Account update: In _URLSend auth loop begin
[DBG]- 27/Feb/2011 09:39:17 - Account update: In _URLSend auth loop end
[DBG]- 27/Feb/2011 09:39:17 - Account update: In _URLSend redirect to http://dyndns.dk/
[DBG]- 27/Feb/2011 09:39:17 - Account update: URLSend done, ret=0x818501f4
[DBG]- 27/Feb/2011 09:39:17 - Account update: sending request done with err=0x818501f4
[DBG]- 27/Feb/2011 09:39:17 - Account update: update ended with ret=0x818501f4
[ERR]- 27/Feb/2011 09:39:17 - Account "DynDnsDk" update failed. - Error 0x818501f4:Server error.


Mit spørgsmål er nu, om nogen har erfaringer med at foretage automatiske opdateringer til DynDNS.dk (pro udgaven; dvs. hvor man ikke benytter et subdomæne under

DynDNS), eventuelt andre dynamiske DNS services?

Succes er at min server automatisk opdaterer en navneserver med min dynamiske IP-adresse...
Avatar billede sune56 Nybegynder
28. februar 2011 - 23:15 #1
Hej eksperter,

Jeg har fundet et hack som virker nogenlunde, så jeg ville egentlig lukke spørgsmålet igen. Det kan jeg ikke lige se hvordan man gør, så pointene svæver stadigvæk derude til den som kommer med en bedre løsning...

Her er mit hack, i tilfælde af at andre derude sidder med samme problem:

Omskriv nedenstående C# kodestump (og udskift DOMAIN med dit domæne-navn) til en service og installér den via InstallUtil.exe i .NET 4.0 eller 2.0.

Det skal lige siges at man bør overveje at finde en bedre løsning på at finde sin offentlige IP-adresse, da HTML´en som sendes af www.whatismyipaddress.com ikke altid har samme struktur...

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Net;

namespace IPUpdater
{
    class Program
    {
        static void Main(string[] args)
        {
            if (args.Length != 1)
            {
                Console.WriteLine("Usage: IPUpdater.exe password");
                return;
            }
            var password = args[0];
            var res = GetExternalIpFromWhatIsMyIp();
            if (res == null)
            {
                Console.WriteLine("Failed to find public IP");
                return;
            }

            SetIP(res,password);
            Console.WriteLine("Program completed at: {0}", DateTime.Now);

        }



        static void SetIP(string ipAdress, string password)
        {

            var updateURL = "https://dyndns.dk/pro/dynamic.php?update=1&dynname=@&dyndomain=DOMAIN&dynpassword=" + password + "&dynip=" + ipAdress;
            WebClient wc = new WebClient();

            UTF8Encoding utf8 = new UTF8Encoding();

            var result = utf8.GetString(wc.DownloadData(updateURL));

        }


        static string GetExternalIpFromWhatIsMyIp()
        {


            string whatIsMyIp = "http://whatismyipaddress.com/";
            WebClient wc = new WebClient();
            UTF8Encoding utf8 = new UTF8Encoding();
            string requestHtml = "";
            try
            {
                requestHtml = utf8.GetString(wc.DownloadData(whatIsMyIp));
            }
            catch (WebException we)
            {
                Console.Write(we.ToString());
                return null;
            }
            string prefixDef = @"LOOKUPADDRESS";
            string withoutPrefix = requestHtml.Substring(requestHtml.IndexOf(prefixDef) + prefixDef.Length + 9);
            string res = withoutPrefix.Substring(0, withoutPrefix.IndexOf('\"'));
            return res;

        }
             


    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester