Einzelnen Beitrag anzeigen

Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#1

IPv4-Adresse auf Gültigkeit prüfen

  Alt 10. Jan 2010, 11:37
himitsu stellt hier eine Funktion vor, mit der man eine IPv4-Adresse auf Gültigkeit überprüfen kann. Diese wurde von alzaimar leicht korrigiert und optimiert.

Delphi-Quellcode:
//Array als Lookup-Tabelle für gültige Ziffern.
var
  IsDigit : Array [Char] Of Boolean;

//Hilfsfunktion
//Muss einmal vor Aufruf von isIP aufgerufen werden, um eine LookUp-Tabelle zu erstellen.
procedure InitIsDigit;
var
  C : char;
begin
  For C:= #0 to #255 do IsDigit[C] := C in ['0'..'9'];
end;
Delphi-Quellcode:
function isIpv4(const aIpString: string): Boolean;
var
  pIpString: PChar;
  OctetSum, Octet, OctetLength, OctetCount: Integer;

begin
  Result := False;
  pIpString := PChar(aIpString);
  OctetCount := 0;
  OctetSum := 0;
  while pIpString^ <> #0 do
  begin
    Inc(OctetCount);
    Octet := 0;
    OctetLength := 0;
    while IsDigit[pIpString^] do
    begin
      Octet := Octet * 10 + (Ord(pIpString^) - Ord('0'));
      Inc(OctetLength);
      Inc(pIpString);
    end;
    inc(OctetSum, Octet);
    if (OctetLength = 0) or (Octet > 255) then
      Exit;
    if OctetCount = 4 then
      Break;
    if pIpString^ <> '.then
      Exit;
    Inc(pIpString);
  end;
  Result := (OctetSum > 0) and (OctetCount = 4) and (pIpString^ = #0);
end;
Frederic Kerber
  Mit Zitat antworten Zitat