ip adresse als string umwandeln in ein hexwert



  • Hahaha, ich hab deine Funktion nicht komplett nachvollzogen, muss es aber auch nicht.
    Ich kann es mir aber lebhaft vorstellen:
    "Bitte Herr xPCSIM erklären sie doch ihren Kommilitonen mal ihre Funktion ip_from_string" - "Öhmmmm..." 🙂

    EDIT:
    Ich selber hätte es wahrscheinlich mit strrchr oder strchr oder sowas versucht.


  • Mod

    Swordfish schrieb:

    Mein Gott, jetzt stellt euch doch nicht so an ... sind doch bloß ein paar Zeilen 👎

    long unsigned ip_from_string(char const *q)
    {
    	long unsigned a[0x3]={0x0};char *p=q;while(*p++)if(0x2e==*p)
    	++0x1[a];else if(*p&&(0x1|0x30&*p)==0x30)return 0x0;if(0x1[a
    	]^0x3||--p-q>0xf)return 0x0;for(0x1[a]=0x1;--p>=q;*(0x1+a)=*
    	(0x1+a)?0x1[a]*0xa:0x1)if(*p==0x2e&&*(a+1)>0x3e8)return 0x0;
    	else if(*p==0x2e)0x1[a]^=*(0x1+a),0x2[a]+=0x8;else 0x0[a]+=(
    	*p-0x30)**(0x1+a)<<0x2[a];return 0x1[a],~*(0x2+a)**q,0x0[a];
    }
    

    // ne, rechteckig ist schöner

    Ich sehe, du hast viel gelernt. 👍

    Die ersten beiden Zeilen fand ich es noch harmlos, aber die for-Schleife und die Benutzung des Komma-Operators haben mich dann restlos überzeugt 😋 .



  • SeppJ schrieb:

    Ich sehe, du hast viel gelernt. 👍

    Nur von den besten 😉



  • Ach man darf ja "keine fertigen funktionen verwenden".
    Also würde ich mir mein strchr selber programmieren und bei der Gelegenheit auch gleich testen, ob mir nicht jemand ne IP wie "333.444.555.666" unterjubeln will. Port lassen wir erstmal weg. "333.444.555.666:66666" wäre für den Anfang zu heftig.



  • EOP schrieb:

    [...] auch gleich testen, ob mir nicht jemand ne IP wie "333.444.555.666" unterjubeln will.

    Stimmt, das ging in der Beta noch durch. Fixed:

    long unsigned ip_from_string(char const *q)
    {
        long unsigned a[0x3]={0x0};char *p=q;while(*p++)if(0x2e==*p)
        ++0x1[a];else if(*p&&(0x0[p]&~0x30)>0x09)return 0x0;if(0x1[a
        ]^0x3||--p-q>0xf)return 0x0;for(0x1[a]=0x1;--p>=q;*(0x1+a)=*
        (0x1+a)?0x1[a]*0xa:0x1)if(*p==0x2e&&*(a+1)>0x3e8)return 0x0;
        else if(!0x2e-0x0[p]&&*(0x0+a)>>0x2[a]&~0xff)return 0x0;else
        if(*p==0x2e)0x1[a]^=*(0x1+a),0x2[a]+=0x8;else 0x0[a]+=(p[0]-
        0x30)**(0x1+a)<<0x2[a];return !*p<~0x1?0x1[a]:0x2[a],0x0[a];
    }
    

    Jetzt sollten nur noch gültige IPs durchgehen. RTM würd ich sagen. 👍



  • Hab jetzt nicht getestet, ob "1.2..3" oder "1.2.3." oder "1.2.-3.4" oder "1.2.3.A" durchgehen würden - weil ich gar nix getestet hab.

    RTFM ist aber immer ein guter Anfang. 😉 👍

    Ich hab soviele RFCs gelesen - da wir dir schwindlig.

    Bis hin zu https://tools.ietf.org/html/rfc2324

    This document describes HTCPCP, a protocol for controlling, monitoring, and diagnosing coffee pots.

    🙂



  • EOP schrieb:

    RTFM [...]

    ? ➡ RTM



  • Swordfish schrieb:

    EOP schrieb:

    RTFM [...]

    ? ➡ RTM

    Hahaha, RTFM passt aber auch. 🙂



  • EOP schrieb:

    Hahaha, ich hab deine Funktion nicht komplett nachvollzogen, muss es aber auch nicht.
    Ich kann es mir aber lebhaft vorstellen:
    "Bitte Herr xPCSIM erklären sie doch ihren Kommilitonen mal ihre Funktion ip_from_string" - "Öhmmmm..." 🙂

    EDIT:
    Ich selber hätte es wahrscheinlich mit strrchr oder strchr oder sowas versucht.

    kommilitonen? wie alt seit ihr ? 20? man ihr profiliert auch ja hier ich hau mich weg. xD

    das der unterschied zwischen dir und mir .. ich geh nicht mehr zur schule 😉 und nein ich bin kein programmierer. wenn ich mal sagen würd was ich hier den ganzen tag mach dann wärt ihr vielleicht nicht so herrablassend und arrogant 🙂 aber ist schon ok 🙂


  • Mod

    Es ist halt eine typische Hausaufgabe bzw. Übungsaufgabe. Da liegt der Gedanke schon nahe, dass der Fragesteller irgendwie Schüler oder Student ist. Ganz besonders wegen der Anforderung, dass das Ganze ohne vorgefertigte Funktionen zu erfolgen hat*. Manchmal liegt man mit solchen Einschätzungen eben falsch.

    *: Wieso ist diese Anforderung da, wenn das keine Hausaufgabe ist?



  • Wenn das keine Hausaufgabe ist dann fress ich doch glatt ein haariges Kehrgerät.

    Nicht alle Forum-members sind mehrfach auf dem Kopf aufgeschlagen.
    Siehe Swordfish - er kann das Ganze auch noch sexy formatieren.

    Und natürlich:
    Sorry wenn ich deinen Job als Gehirnchirurg nicht sofort nach deinem ersten post erkannt habe.



  • xPCSIM schrieb:

    das der unterschied zwischen dir und mir .. ich geh nicht mehr zur schule 😉 und nein ich bin kein programmierer. wenn ich mal sagen würd was ich hier den ganzen tag mach dann wärt ihr vielleicht nicht so herrablassend und arrogant 🙂 aber ist schon ok 🙂

    Oh ja doch, bitte, erleuchte uns!

    Was ist dein streng geheimes modbus Projekt an dem du arbeitest, und für was braucht du eine "standalone" Implementierung von inet_addr ?


  • Mod

    hustbaer schrieb:

    Was ist dein streng geheimes modbus Projekt an dem du arbeitest, und für was braucht du eine "standalone" Implementierung von inet_addr ?

    Es könnte ein Chefentwickler mit NIH-Syndrom im Endstadium vorliegen. Wer kann schon irgendwelchen Linuxfricklern oder überarbeiteten Lohnsklaven bei Microsoft vertrauen, eine IP-Parsefunktion fehlerfrei zu implementieren? Dann macht man das doch lieber selber. Mit solidem, eigenem Code, wie dem, den Swordfish gezeigt hat. Natürlich noch mit guten Kommentaren für künftige Entwickler:

    // Esta função analisa endereços IP
    long unsigned ip_from_string(char const *q)
    {
        // Fazer coisas:
        long unsigned a[0x3]={0x0};char *p=q;while(*p++)if(0x2e==*p)
        ++0x1[a];else if(*p&&(0x0[p]&~0x30)>0x09)return 0x0;if(0x1[a
        ]^0x3||--p-q>0xf)return 0x0;for(0x1[a]=0x1;--p>=q;*(0x1+a)=*
        (0x1+a)?0x1[a]*0xa:0x1)if(*p==0x2e&&*(a+1)>0x3e8)return 0x0;
        else if(!0x2e-0x0[p]&&*(0x0+a)>>0x2[a]&~0xff)return 0x0;else
        if(*p==0x2e)0x1[a]^=*(0x1+a),0x2[a]+=0x8;else 0x0[a]+=(p[0]-
        0x30)**(0x1+a)<<0x2[a];return !*p<~0x1?0x1[a]:0x2[a],0x0[a];
        // Feito!
    }
    


  • hustbaer schrieb:

    Oh ja doch, bitte, erleuchte uns!

    Was ist dein streng geheimes modbus Projekt an dem du arbeitest, und für was braucht du eine "standalone" Implementierung von inet_addr ?

    Hat garantiert was mit Gehirnchirurgie, Raketenwissenschaft oder dem Higgs-Boson zu tun.
    Ist aber noch streng geheim.

    EDIT:
    Der Hinweis auf inet_addr war natürlich ziemlich gemein wo wir doch alles von Anderen ohne fertige Funktionen gemacht haben wollen.



  • Haha Sepp, der war richtig gut. Fast unbezahlbar. Hat mich wieder mal dran erinnert alles erst mal nachzuprüfen.



  • EOP schrieb:

    hustbaer schrieb:

    Oh ja doch, bitte, erleuchte uns!

    Was ist dein streng geheimes modbus Projekt an dem du arbeitest, und für was braucht du eine "standalone" Implementierung von inet_addr ?

    Hat garantiert was mit Gehirnchirurgie, Raketenwissenschaft oder dem Higgs-Boson zu tun.
    Ist aber noch streng geheim.

    EDIT:
    Der Hinweis auf inet_addr war natürlich ziemlich gemein wo wir doch alles von Anderen ohne fertige Funktionen gemacht haben wollen.

    ganz erlich ich weiss gar nicht was mit euch abgeht. zum dritten mal ich bin kein programmierer. ich arbeite an der entwicklung eines lasers und helfe meinen kollegen einen monat weil die unterbesetzt sind. die messdaten werden halt über modbus abgezwackt. weiss gar nicht warum ihr so abgeht weil ich gut seid im programmieren. jeder kann was anderes aber ich würd ja andere nicht gleich so runter machcen. aber ist wahrscheinlich ne frage des egos.aber ist auch lachs. könnte da noch n satz sagen aber das lassen wir mal lieber 😉

    was solls danke für die hilfe



  • SeppJ schrieb:

    Mit solidem, eigenem Code, wie dem, den Swordfish gezeigt hat.

    Hey, das ist Qualitäts-Kot!!



  • xPCSIM schrieb:

    ganz erlich ich weiss gar nicht was mit euch abgeht.

    Manche von uns hier haben Humor und manche (so wie ich z.B.) sind einfach nur Arschgeigen.
    Ein bisschen Spaß muss bei der ganzen Programmiergeschichte schon auch dabei sein.
    Ebenso wie im richtigen Leben. Ohne Spaß ist alles nix.


  • Mod

    @xPCSIM: Dieser Thread beschreibt recht gut, was in diesem Thread passiert ist:
    https://www.c-plusplus.net/forum/136013
    Deshalb ist der Thread auch oben im Forum angepinnt und als wichtig markiert, damit so etwas nicht passiert. Wenn man so etwas natürlich ignoriert...



  • xPCSIM schrieb:

    ganz erlich ich weiss gar nicht was mit euch abgeht. zum dritten mal ich bin kein programmierer. (...) jeder kann was anderes aber ich würd ja andere nicht gleich so runter machcen. aber ist wahrscheinlich ne frage des egos.

    Du hast leider überhaupt nicht verstanden wieso du Gegenwind bekommst.
    Dass du fast nix bis nix von Programmieren verstehst ist nicht der Grund.
    Die Art und Weise wie du hier auftrittst ist der Grund.


Anmelden zum Antworten