IP-Adresse Teil von Netzwerk?



  • Hallo und guten Morgen zusammen,

    ich gebe mich seit ein paar Tagen wieder an c++. Im Rahmen eines kleinen Tools lese ich eine IP-Adresse ein, die ich mit einigen gegebenen IP-Adressen und Netzen vergleichen moechte. Kleines Beispiel.

    Gegeben sind die Adressen 192.168.100.10, 192.168.100.11, 192.168.200.10 sowei die Netze 192.168.0.0/24, 192.168.100.0/ und 192.168.200.0/24.

    Uebergebe ich nun die IP-Adresse 192.168.0.50, kommt diese zwar nicht in den gegebenen IP-Adressen, aber als Bestandteil in einem der gegebenen Netze vor. Gibt es nun eine Funktion, die mir das "sagt", oder muss ich da selber was schreiben?

    Danke und Gruesse
    ports



  • IP-Adresse & Subnetzmaske == Netzadresse



  • MFK schrieb:

    IP-Adresse & Subnetzmaske == Netzadresse

    Hallo MFK,

    danke fuer die Rueckmeldung. Allerdings ist deine Antwort so kurz wie die Fehlerbeschreibung einiger User, die nur ein "Geht nicht" ins Betreff schreiben 🙂 Ich vermute ich brauche noch 2-3 Saetze, damit mir ein Licht aufgeht.

    Danke und Gruss
    ports



  • Kleines Beispiel:

    // Voraussetzung: Adresse und Maske liegen als 32 bit Integer vor
    
    // Eine Adresse
    in_addr_t a_addr = inet_addr("192.168.100.10");
    in_addr_t a_mask = inet_addr("255.255.255.255"); // entspricht keiner Maske
    
    // Ein ganzes Netzwerk
    in_addr_t c_addr = inet_addr("192.168.0.0");
    in_addr_t c_mask = inet_addr("255.255.255.0");
    
    {
        // Zu überprüfende Adresse
        in_addr_t pruef = inet_addr("192.168.0.50"); // zu prüfende adresse
    
        if ( ( a_addr & a_mask ) == ( pruef & a_mask ) ) {
            // Adresse passt auf a
        }
        else if ( c_addr & c_mask ) == ( pruef & c_mask ) ) {
            // Adresse passt auf c
        }
        // ...
    }
    


  • Und die passende Erläuterung dazu 😉

    http://de.wikipedia.org/wiki/Subnetz



  • Also kleine Lektüre dazu könnte der Wikipedia-Artikel zur IP-Adresse ganz interessant sein:

    http://de.wikipedia.org/wiki/IP-Adresse#Netzwerkteil_und_Ger.C3.A4teteil

    Edit: zu spät...



  • Hallo,

    danke an alle Antworten. Das, vor allem aber der Code, helfen mir den Weg in die richtige Richtung zu finden 🙂

    Gruss
    ports


Log in to reply