Ankündigung

Einklappen
Keine Ankündigung bisher.

gesucht: IP mit u32 in String und umgekehrt

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    [Codebeispiel] gesucht: IP mit u32 in String und umgekehrt

    Hat schon jemand entsprechend gecodet? Ich brauche eine Umwandlung von String mit IP "rrr.sss.ttt.uuu" in u32 und umgekehrt.

    Der EibPC braucht mit Beta derzeit sehr lange um zu laden daher wäre ich über eine bereits existierende Lösung erfreut ...

    Gruß,
    Bernd


    #2
    Hallo Bernd,

    ich bin gerade am gleichen Thema dran und habe mir mit Excel erst einmal die Grundstruktur überlegt und diese so getestet.

    Schaue einmal im Anhang.

    Ich versuche mich heute Abend einmal an der ersten Richtung.

    Viele Grüße

    Michael
    Angehängte Dateien

    Kommentar


      #3
      Moin, moin,

      hier eine Lösung. Testvektor als EibPC-Programm:
      [highlight=epc]
      MyIP34 = $$
      MyIP34u32 = 192.168.10.34
      MyIPS = $192.167.12.1$
      MyIP2 = 0u32
      MyIPC = 192.167.12.1

      if systemstart() then {
      U32toIPString(MyIP34u32, MyIP34 );
      } endif

      if systemstart() then {
      IPStringtoU32( MyIPS, MyIP2 );
      } endif
      [/highlight]

      Und das Makro dazu:
      [highlight=epc]
      :begin U32toIPString( MyIP, MyIPString )
      :info $Umwandeln eines U32 in eine IP der Form ppp.qqq.rrr.sss$

      :return {
      MyIPString = convert( (MyIP and 0xFF000000u32) / 0x01000000u32, $$) +$.$+ \\
      convert( (MyIP and 0x00FF0000u32) / 0x00010000u32, $$) +$.$+ \\
      convert( (MyIP and 0x0000FF00u32) / 0x00000100u32, $$) +$.$+ \\
      convert( (MyIP and 0x000000FFu32), $$);
      }
      :end

      :begin IPStringtoU32( MyIPString, MyIP )
      :info $Umwandeln eines Strings einer IP in Form ppp.qqq.rrr.sss in ein U32$

      :var ByteOne@
      :var ByteTwo@
      :var ByteThree@
      :var ByteFour@
      :var DotOne@
      :var DotTwo@
      :var DotThree@

      ByteOne@ = 0u32
      ByteTwo@ = 0u32
      ByteThree@ = 0u32
      ByteFour@ = 0u32
      DotOne@ = 0u16
      DotTwo@ = 0u16
      DotThree@ = 0u16

      :return {
      DotOne@ = find(MyIPString,$.$,0u16);
      DotTwo@ = find(MyIPString,$.$,1u16);
      DotThree@ = find(MyIPString,$.$,2u16);

      if DotThree@ < END then {
      ByteOne@ = convert( split( MyIPString, 0u16, DotOne@), 0u32 );
      ByteTwo@ = convert( split( MyIPString, DotOne@+1u16, DotTwo@), 0u32 );
      ByteThree@ = convert( split( MyIPString, DotTwo@+1u16, DotThree@), 0u32 );
      ByteFour@ = convert( split( MyIPString, DotThree@+1u16, END), 0u32 );
      MyIP = (((ByteOne@ * 256u32 + ByteTwo@) * 256u32) + ByteThree@) * 256u32 + ByteFour@;
      } endif;
      if DotThree@ == END then MyIP = 0u32 endif;
      }

      :end
      [/highlight]

      Gruß,
      Bernd

      Kommentar


        #4
        Hallo Bernd & Michael,
        stehe irgendwie noch auf dem Schlauch und die Neugierde quält mich...

        In welchen Zusammenhängen bzw. praktischen Anwendungsfall nutzt Ihr diese Funktion? Sehr wahrscheinlich habe ich auch den Bedarf, weiß es nur leider noch nicht...
        Viele Grüße,
        Oliver

        Kommentar


          #5
          Stell Dir vor:
          1. Du löst mit resolve() eine IP auf und möchtest die in der Visu darstellen. Wie würdest Du die IP (u32) als String darstellen?

          2. Du hast z.B. einen String von einer Webseite, da steht Deine erkannte IP drin. (z.B. "<p>Ihre IP lautet:95.23.45.1</p>" Du möchtest diese IP in ein Format bringen, das Du mit einer anderen IP vergleichen kannst.
          (Beispiel: Dyndns und Fritzbox sollten die gleiche IP haben. Sonst kommst Du von außen auf die Fritzbox nicht drauf, wenn den Dyndns nicht aktualisiert wurde. Du kannst also abfragen, was MeinHaus.dyndns.org aufgelöst ergibt und was eine Webabfrage Deiner externen IP bei einer Webseite ergibt. Wenn die nicht gleich sind, kannst Du einen Update der Dyndns erzwingen)

          Gruß,
          Bernd

          Kommentar


            #6
            DANKE!
            Ich hatte es doch im Gefühl das ich einen Bedarf habe, von dem ich selbst noch nix wußte! Das mit dem DynDNS Check klingt gut, insbesondere da in letzter Zeit das ganze nicht mehr zuverlässig funkioniert (könnte aber auch an der FB liegen, als FaultTolerance will ich das nun noch auf dem QNAP einrichten).
            Klingt nach einem spannendem Thema "Initiierung DynDNS". Oder planst Du eher einen Zugriff auf eine "Ihre IP-Auflösung"-Seite, dann parsen und am Ende Versendung der IP als Fallback via Email?
            Viele Grüße,
            Oliver

            Kommentar


              #7
              Hallo Oliver,

              Du kennst ja mein Lieblingsthema zur Zeit...

              Die Statusnachricht der AI Wärmepumpe beinhaltet die IP Adresse, das Gateway usw. in dem String-Format. Da ich das Browser Front-End max. nachbauen möchte, benötige ich diese Umwandlung.

              Als letztes Sonderthema ist dann noch die Umwandlung von Unixzeit in Normalzeit notwendig.

              Bernd, Du hast das Thema Unixzeit doch nicht etwa auch schon auf dem Schirm gehabt und so perfekt gelöst, oder?

              Viele Grüße

              Michael

              Kommentar


                #8
                @Sandman60: Zugriff auf eine "Ihre IP-Auflösung"-Seite, dann parsen und am Ende Versendung der IP als Fallback via Email?

                Genau das hatte ich vor, als Ideengeber war die Vorlage vom MathiasS



                @Jambala:
                UnixTime Macros waren Teil vom EibPC Wettbewerb und sollten bei den Macros schon dabei sein...


                Gruß,
                Bernd

                Kommentar


                  #9
                  Hallo Bernd,

                  das ist ja wie im Schlaraffenland.

                  Da denke ich noch über die Realisierung der IP Konvertierung nach und schon hast Du es fertig programmiert.

                  Der Hinweis zur Unixzeit war natürlich auch ein Volltreffer.

                  Bald bin ich "arbeitslos" ...

                  Viele Grüße

                  Michael

                  Kommentar


                    #10
                    Zitat von bmx Beitrag anzeigen
                    @Sandman60: Zugriff auf eine "Ihre IP-Auflösung"-Seite, dann parsen und am Ende Versendung der IP als Fallback via Email?

                    Genau das hatte ich vor, als Ideengeber war die Vorlage vom MathiasS
                    Wie oft funktioniert denn euer dyndns Service nicht? Bei mir geht der immer

                    PS: Die T-Com Router sind da anscheinend nicht besonders zuverlässig, bei den Fritzboxen und anderen weiß ich es nicht.
                    Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                    Amazon: KNXnet/IP Router
                    , KNXnet/IP Interface

                    Kommentar


                      #11
                      Hoi

                      Meine Fritzbox ist zuverlässig. Aber da ich am Kabel hänge hab' ich monatelang die gleiche IP (wenn nicht länger) und das schmeckt dyndns nicht.
                      Grüsse Bodo
                      Fragen gehören ins Forum, und nicht in mein Postfach;
                      EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                      Kommentar


                        #12
                        Hi Bodo, falls du bei dyndns.org bist: da kann man im Webinterface eine feste IP einstellen. Dann muss die Fritzbox garnichts aktualisieren.
                        Ich benutze das z.B. für einen vServer mit fester IP.
                        Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                        Amazon: KNXnet/IP Router
                        , KNXnet/IP Interface

                        Kommentar


                          #13
                          Hoi

                          Ah ok, da schau' ich mal, danke.
                          Grüsse Bodo
                          Fragen gehören ins Forum, und nicht in mein Postfach;
                          EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

                          Kommentar


                            #14
                            Ich muss mich da wohl korrigieren. Ich sehe bei der festen IP keinen Unterschied in den Einstellungen zu den anderen. Ich meine das war mal anders.
                            Egal, vielleicht hilft es dir einfach des Aktualisieren der IP auszuschalten.
                            Firma: Enertex Bayern GmbH, Ebermannstädter Straße 8, 91301 Forchheim
                            Amazon: KNXnet/IP Router
                            , KNXnet/IP Interface

                            Kommentar


                              #15
                              Ich bin vor ca. 3-4 Monaten auf die Fritzbox umgestiegen und hatte erst einmal einen DynDNS Hänger.

                              Nach Neustart des Dienstes über das Fritzbox Menü lief wieder alles problemlos.

                              Nach Murphy passiert das beim nächsten Mal bestimmt im Urlaub.

                              Viele Grüße

                              Michael

                              Kommentar

                              Lädt...
                              X