Announcement

Collapse
No announcement yet.

Problem bei konvertierung einer IP-Adresse von Int64 zu String

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem bei konvertierung einer IP-Adresse von Int64 zu String

    (Sollte dieser Beitrag im falschen Bereich liegen, bitte ich das zu entschuldigen, ich bin neu hier)
    Hallo Leute,
    ich habe folgendes Problem:
    Ich will eine kleine Windows-Forms Anwendung mit Visual C++ 2008 schreiben, die meinen Source dedicated Server automatisiert startet und überwacht.
    Da der Server beim starten als Parameter u.a. seine eigene IP-Adresse braucht und sich diese nunmal alle 24 Stunden ändert (Zwangstrennung), soll das Prog mithilfe von "System::Net:ns::GetHostByName()" die IP-Adresse von meinem Dyndns-Hostnamen beziehen, da der ja auf meinen Router und damit auf meine IP zeigt.
    Ich habe es nun über ein paar Umwege geschafft, die IP als Int64 in einer long-Variable ipint (sieht etwa so aus:"0123456789") zu speichern, aber ich schaffe es einfach nicht, den Wert in das Format "xxx.xxx.xxx.xxx" zu konvertieren.
    Auf einer anderen Website habe ich das gefunden:

    Code:
    In no particular language (i.e., you may need FLOOR() instead of INT())...
    
    To convert dotted (A.B.C.D) to a number:
    D
    + 256 * C
    + 256 * 256 * B
    + 256 * 256 * 256 * A
    
    To convert number (X) back to dotted:
    temp = X / 256
    D = 256 * (temp - INT(temp))
    temp = (INT (temp)) / 256
    C = 256 * (temp - INT(temp))
    temp = (INT (temp)) / 256
    B = 256 * (temp - INT(temp))
    A = INT (temp)
    (Ich habe X in meinem Code durch ipint ersetzt)

    Es ist natürlich klar, dass man das schlecht einfach so in den Quellcode einsetzten kann (vorallem das INT(temp) macht mich stutzig), und bitte euch nun um Hilfe.
    Wie mein Name schon sagt, bin ich ziemlicher Programmier-Anfänger, also bitte kein Fachchinesisch.
    Bitte helft mir, sonst bringe ich diesen Server nie zum laufen.

    mfg Masterhand

  • #2
    Wenn du die IP-Adresse als String haben willst, warum willst du ein Programm nutzen, welches Ziffern als nummerischen Wert codiert?

    Dns.GetHostByName gibt ein IPHostEntry Object zurück. Warum arbeitest du nicht damit?

    http://msdn.microsoft.com/de-de/libr...dresslist.aspx
    Christian

    Comment


    • #3
      Weil die IP-Adresse bereits kodiert ist und ich sie im klassischen format "xxx.xxx.xxx.xxx" haben will.

      Comment


      • #4
        Das muss man jetzt nicht verstehen:

        Über "System::Net:ns::GetHostByName()" holst du dir anhand des Hostnames die IP-Adresse. Warum nutzt du nun das nicht zur Ausgabe in deinem gewünschten Format? Siehe auch das Beispiel zu demLink.
        Christian

        Comment


        • #5
          Problem gelöst, sorry, dass ich gestört habe.

          Comment

          Working...
          X