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
-
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