AGB  ·  Datenschutz  ·  Impressum  







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

IPs aufteilen

Ein Thema von BackOrifice · begonnen am 6. Jun 2005 · letzter Beitrag vom 6. Jun 2005
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#11

Re: IPs aufteilen

  Alt 6. Jun 2005, 16:58
Danke Schöööööön
Henning
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#12

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:05
Ich hab' nochmal ne Frage
Wollte dazu keinen neuen Thread aufmachen, weils relativ kleines Prob ist:

Ich habe 2 IP Adresse im Binären String; durch eine AND-Operation ergibt sich daraus eine neue (binäre) IP-Adresse.
Beide Adressen sind jeweils nur 32bit groß und trotzdem schmiert mir jedes mal das Programm ab ('111111111110100101010101010usw.. ist kein gültiger Integerwert').

Ich hab bereits schon INT64 versucht, bringt leider nichts

Hiermal n kleiner Ausschnitt ausm Quelltext (inzwischen so oft umgeändert..):
Code:
function Netzadresse (IP_adresse_bin, Netzmaske_bin : string) : string;
var Netz1,Netz3,Netz4 : int64;
     Netzadresse_2 : string;
begin
  Netz1:=0;     //<-- auch sehr lustig: Nach der Anweisung hat die Var immer noch einen Wert von -48546453
  Netz1:=StrToInt(IP_adresse_bin);    //<-- ab hier der Abbruch
  Netz3:=StrToInt(Netzmaske_bin);
  Netz4:=Netz1 and Netz3;
  Netzadresse_2:=IntToStr(Netz4);
  ShowMessage('Netzadresse: ' + Netz2);
  Netzadresse:=Netzadresse_2
end;
Jmd. ne Idee?
Henning
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#13

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:12
Hi.

Du kannst nur Strings, die eine Zahl im Dezimalsystem beinhalten nach integer konvertieren.
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#14

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:17
Und nun?

Gibts ne Möglichkeit, diesen Umstand zu umgehen? Irgend nen Trick?
Henning
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#15

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:21
Hi.

So müsste es gehen: (ungetestet)
Delphi-Quellcode:
function BinStrToInt(str : string) : integer;
var
  i : integer;
begin
  result := 0;
  for i := 1 to Length(str) do
    result := result + ( (Ord(str[i]) - Ord('0')) * Power(2, Length(str) - i) );
end;
Konvertiere die Zahlen einfach mit BinStrToInt(i) statt StrToInt(i)
  Mit Zitat antworten Zitat
Phistev
(Gast)

n/a Beiträge
 
#16

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:23
Kleine Anmerkung am Rande: die Funktion kann weiterhelfen, wenn man weiß wie
Delphi-Quellcode:
var ip, temp TStringDynArray;
    suffix: string;
begin
  temp:= Explode('/',Adresse);
  suffix:= temp[1];
  ip:= Explode('.',temp[0]);
//Ip[0] bis ip[3] => die vier Blöcke
//suffix => der Teil nach dem Schrägstrich
Ein String aus dem Array kann man auch an Explode übergeben
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#17

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:29
Danke danke - aber als was definierst du die Funktion "Power"?

//e: Thx Phistev, aber so kompiliziert wollt ichs nicht machen *g*
Henning
  Mit Zitat antworten Zitat
Waldteufel
(Gast)

n/a Beiträge
 
#18

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:31
Hi.

Huppsala... uses {...}, Math, {...}; fehlte noch...
  Mit Zitat antworten Zitat
Benutzerbild von BackOrifice
BackOrifice

Registriert seit: 6. Jun 2005
74 Beiträge
 
Delphi 2007 Architect
 
#19

Re: IPs aufteilen

  Alt 6. Jun 2005, 19:42
narf, Inkompatible Typen: Integer und Extended
Und eine Funktion á la IntToExt hab ich leider auch nicht gefunden
Trotzdem danke nochma
Henning
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#20

Re: IPs aufteilen

  Alt 6. Jun 2005, 20:06
Nun, da in diesem Fall sicher ein Integer rauskommt, kann man das Ergebnis von Power ganz einfach mit Delphi-Referenz durchsuchenTrunc in einen Integer verwandeln. Dabei werden alle Nachkommastellen abgeschnitten. Falls gerundet werden soll, so verwendest du einfach Delphi-Referenz durchsuchenRound. Du musst also nicht int nach extended casten (das muss man gar nicht, in die Richtung sind die Typen sogar kompatibel), sondern umgekehrt

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 18:32 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