Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi AddressToIP TJvIpAdress (https://www.delphipraxis.net/33878-addresstoip-tjvipadress.html)

CReber 14. Nov 2004 09:29


AddressToIP TJvIpAdress
 
Ich verwende die Komponente TJvIpAdress. Nun möchte ich eine Schleife von der benutzerdefinierte Start IP und End IP machen.

Delphi-Quellcode:
if eIPEnd.Address > eIPStart.Address then
  for j := eIPStart.Address to eIPEnd.Address do begin
Diese Adress ist wie folgt aufgebaut:

Delphi-Quellcode:
// Address ist ein Cardinal Wert

procedure TJvIpAddressValues.SetValue(const AValue: Cardinal);
var
  FChange: Boolean;
begin
  FChange := False;
  if GetValue <> AValue then
  begin
    if Changing(0, FIRST_IPADDRESS(AValue)) then
    begin
      FValues[0] := FIRST_IPADDRESS(AValue);
      FChange := True;
    end;
    if Changing(1, SECOND_IPADDRESS(AValue)) then
    begin
      FValues[1] := SECOND_IPADDRESS(AValue);
      FChange := True;
    end;
    if Changing(2, THIRD_IPADDRESS(AValue)) then
    begin
      FValues[2] := THIRD_IPADDRESS(AValue);
      FChange := True;
    end;
    if Changing(3, FOURTH_IPADDRESS(AValue)) then
    begin
      FValues[3] := FOURTH_IPADDRESS(AValue);
      FChange := True;
    end;
    if FChange then
      Change;
  end;
end;
Leider fehlt mir in diesem Gebiet der nötige Sachverstand. Wie kann ich diese Zahl /möglichst unkompliziert/ wieder in eine IP umwandeln?

CReber 14. Nov 2004 15:50

Re: AddressToIP TJvIpAdress
 
Der Vollständigkeit halber poste ich mal wie ich es jetzt gemacht habe ... Vlt. kann man das ja mal gebrauchen!

Delphi-Quellcode:
var Class1,Class2,Class3,Class4     : Byte;
    Class5,Class6,Class7,Class8     : Byte;
    a,b,d,d                        : Byte;
begin

        if eIPEnd.Address > eIPStart.Address then begin
          with eIPStart.AddressValues do begin
            Class1:=Value1;
            Class2:=Value2;
            Class3:=Value3;
            Class4:=Value4;
          end;
          with eIPEnd.AddressValues do begin
            Class5:=Value1;
            Class6:=Value2;
            Class7:=Value3;
            Class8:=Value4;
          end;
          lvComputer.Items.BeginUpdate;
          for a:=Class1 to Class5 do
            for b:=Class2 to Class6 do
              for c:=Class3 to Class7 do
                for d:=Class4 to Class8 do
                  with lvComputer.Items.Add do
                    Caption:=IntToStr(a) + '.' + IntToStr(b) + '.' + IntToStr(c) + '.' + IntToStr(d);;
          lvComputer.Items.EndUpdate;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:19 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