AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

IP Range

Ein Thema von Luckie · begonnen am 19. Mär 2006 · letzter Beitrag vom 21. Mär 2006
Antwort Antwort
Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#1

Re: IP Range

  Alt 20. Mär 2006, 06:15
Begründung:

Gruß Hagen

Delphi-Quellcode:

type
  PIp = record // <- TYPEN fangen mit T an
    p1 : String;
    P2 : String;
    p3 : String;
    p4 : String;
    end; // <- Einrückungen, ein Block immer auf gleicher Höhe

type
MyIP = packed record // <- Einrückungen
  case Byte of
    0: (D,C,B,A : Byte);
    1: (dwValue : DWord);
  end;

function SplittIP(IP: string): PIp; // <- String ist eigener Type also S groß bei String
var
  I: Integer;
begin
  Result.p1 := '';
  Result.p2 := '';
  Result.p3 := '';
  Result.p4 := '';

  I := 0;
  repeat
    Inc(I, 1);
    if IP[I] <> '.then // <- Hier AV bei IP = ''
      Result.p1 := Result.p1+IP[I]; // <- Leerzeichen zwischen Operatoren, alles am + geklitscht
  until
     IP[I] = '.'; // <- eine Zeile höher, ist ja wohl nur schlecht
....
end;

function CreateIPPool(sStartIp, sEndIp: String): TStringList;
var
FromIP, ToIP, IP: MyIP; // <- Einrückungen
I: Integer;
Adress: PIp;
begin
  Result := TStringList.Create; // <- Allokation und Rückgabe von komplexen Datentypen sollte man vermeiden
                                 // besser ist es als Paramater Strings: TStrings zu übergeben damit der Aufrufer
                                 // der Funktion für die Datenhaltung verantwortlich bleibt.
  Adress := SplittIP(sStartIp);
  with FromIP do begin // <- begin markiert einen neuen Source/Formtierungs Block, gehört in die nächste
                                 // Zeile direkt unter das with.
    A := StrToInt(Adress.p1);
    B := StrToInt(Adress.p2);
    C := StrToInt(Adress.p3);
    D := StrToInt(Adress.p4);
    end;

  Adress := SplittIP(sEndIp);
  with ToIP do begin
    A := StrToInt(Adress.p1);
    B := StrToInt(Adress.p2);
    C := StrToInt(Adress.p3);
    D := StrToInt(Adress.p4);
    end;

  for I := FromIP.dwValue to ToIP.dwValue do begin // <- begin
    IP.dwValue := I;
    with IP do
      Result.Add(Format('%d.%d.%d.%d',[A,B,C,D]));
    end;
end;
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:31 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