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 Harry M.
Harry M.

Registriert seit: 29. Okt 2004
Ort: Halle
462 Beiträge
 
#1

Re: IP Range

  Alt 20. Mär 2006, 05:27
Hallo mein Lieber

Hätte nicht gedacht, das auch ich Dir mal weiter helfen kann.

Also zuerst die Integer-Werte wandeln is klar denke ich dann kannst du die CreateIPPool benutzen.

Wichtig zu wissen: Die CreateIPPool war die Beste von 3 Versuchen mit dem besten zeitlichen Ergebenissen. Von ?.0.0.0 ?.50.255.255 benötigt sie ca 3-4 sek. Je nach CPU. Die anderen Versuche kommen dabei immer so um die 10-15 Sek weg. Villeicht bekommst Du sie ja noch schneller .
In dem Fall lass von Dir hören.

Delphi-Quellcode:
type
  PIp = record
    p1 : String;
    P2 : String;
    p3 : String;
    p4 : String;
    end;

type
 MyIP = packed record
  case Byte of
    0: (D,C,B,A : Byte);
    1: (dwValue : DWord);
  end;

function SplittIP(IP: string): PIp;
var
  I: Integer;
begin
  Result.p1 := '';
  Result.p2 := '';
  Result.p3 := '';
  Result.p4 := '';

  I := 0;
  repeat
    Inc(I, 1);
    if IP[I] <> '.then
      Result.p1 := Result.p1+IP[I];
  until
     IP[I] = '.';

  repeat
    Inc(I, 1);
    if IP[I] <> '.then
      Result.p2 := Result.p2+IP[I];
  until
     IP[I] = '.';

  repeat
    Inc(I, 1);
    if IP[I] <> '.then
      Result.p3 := Result.p3+IP[I];
  until
     IP[I] = '.';

  repeat
    Inc(I, 1);
    if IP[I] <> '.then
      Result.p4 := Result.p4+IP[I];
  until
     I = Length(IP);
end;

function CreateIPPool(sStartIp, sEndIp: String): TStringList;
var
 FromIP, ToIP, IP: MyIP;
 I: Integer;
 Adress: PIp;
begin
  Result := TStringList.Create;
  Adress := SplittIP(sStartIp);
  with FromIP do begin
    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
    IP.dwValue := I;
    with IP do
      Result.Add(Format('%d.%d.%d.%d',[A,B,C,D]));
    end;
end;
Harry
Gruß Harry
www.H-Soft.info
  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 12:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz