AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Funktion - Check, ob IP in Subnet ist - Gibt da was?

Funktion - Check, ob IP in Subnet ist - Gibt da was?

Ein Thema von Piro · begonnen am 25. Nov 2014 · letzter Beitrag vom 26. Nov 2014
Antwort Antwort
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 25. Nov 2014, 21:47
Moin zusammen,

ich habe von einem DHCP Server alle Subnetze ermittelt. Dagegen habe ich eine Menge Clients (Windows Computer) mit IP Adresse.

Gibt es eine einfache Möglichkeit zu überprüfen, ob eine IP Adresse in einen Subnetz ist?

Code:
IP : 192.168.29.29  Subnetz : 192.168.29.0 Ergebnis : Ja
IP : 192.168.29.29  Subnetz : 192.168.10.0 Ergebnis : Nein
Bei A, B und C Netzen ist das ja relativ einfach indem man den Hostanteil der IP Adresse abschneidet.
Im Beispiel wären das die ersten 3 Oktette für ein C Netz.

Was ist aber mit Nicht-Standard Subnetzmasken?

Gruß Sven
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 25. Nov 2014, 22:03
IP, Subnetz und Subnetzmaske nach DWORD (UInt32 bzw. LongWord) wandeln (mit funktion inet_addr() )

Delphi-Quellcode:
if (IP and Subnetzmaske) = Subnetz then
   ShowMessage('IP befindet sich im Subnetz');
fork me on Github
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 25. Nov 2014, 22:22
Sorry für die doofe Frage und dann?
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 25. Nov 2014, 22:56
Deine Angaben sind unvollständig. Zu einer IP gehört eigentlich immer eine Subnetzmaske und zu einem Subnetz immer eine Größenangabe.

Hast du wenigstens eins von beiden, kannst du aus der Netzgröße eine Subnetzmaske ableiten und dann prüfen, ob der Teil übereinstimmt. Streng genommen hieße das dann aber folgendes:
if (IP and Subnetzmaske) = (Subnetz and Subnetzmaske) then
  Mit Zitat antworten Zitat
ExceptionOverflow

Registriert seit: 12. Sep 2014
18 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 26. Nov 2014, 08:11
Von welchen "Nicht-Standard" Subnetzmasken reden wir hier eigentlich?
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#6

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 26. Nov 2014, 08:20
Von welchen "Nicht-Standard" Subnetzmasken reden wir hier eigentlich?
Er meinte sicher alle Subneting oder Superneting Masken, also Subnetzmasken die nicht 8,16 oder 24 bit sind (bei denen etwas anderes als 255 oder 0 vorkommt).


if (IP and Subnetzmaske) = (Subnetz and Subnetzmaske) then Das finde ich aber frustrierend einfach. Meine TIPValidator Klasse brauchte damals gute 100 Codezeilen.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 26. Nov 2014, 16:44
Ok, leider stehe ich immer noch auf dem Schlauch.

Wie kann denn eine IP Adresse mit Subnetzmaske zusammen als DWORD zum Beispiel gleich einem Subnetz mit Subnetzmaske sein. Die Werte sind doch immer ungleich.
Sorry, da fehlt mir das Verständnis.

Gibt es irgendwo ein Beispiel?

Um IP Adresse bzw. Subnetz mit der Subnetzmaske zu verbinden, werden einfach die DWORDS addiert oder wie verbinde ich die Daten?

DANKE für eure Mithilfe mir das Thema näher zu bringen.

Sven
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 26. Nov 2014, 16:48
Ich glaube ich habe es jetzt.
Habe mir nochmal in Ruhe die oberen Beiträge angesehen.

Ich werde mal IP, Subnetz und Maske als DWORD umwandeln und dann mit
if (IP and Subnetzmaske) = (Subnetz and Subnetzmaske) then vergleichen.

Wenn es klappt, melde ich mich wieder mit einem Beispiel für all diejenigen, die das Thema auch erst gerade angefangen haben.
  Mit Zitat antworten Zitat
jensw_2000
(Gast)

n/a Beiträge
 
#9

AW: Funktion - Check, ob IP in Subnet ist - Gibt da was?

  Alt 26. Nov 2014, 17:26
Am Ende ist es ja nur "binäre Mathematik".
Delphi-Quellcode:
Subnetz1 := IPAdresse AND SubnetMask;
Subnetz2 := AndereIPAdrese AND SubnetMask;

BeideIPsImGleichenSubnet := (Subnet1=Subnet2);
Der Vergleich funktioniert Oktettweise genause wie mit der ganzen IP.
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:03 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz