AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln ?
Thema durchsuchen
Ansicht
Themen-Optionen

Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln ?

Ein Thema von pacman1986 · begonnen am 1. Mai 2006 · letzter Beitrag vom 1. Mai 2006
Antwort Antwort
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#1

Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln ?

  Alt 1. Mai 2006, 19:19
das ist auch schon meine frage gitb es eine möglichkeit IPs in eine zahl zu verwandeln ? wenn ja würde ich gern wissen wie es geht ?
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 19:23
die ip hat folgenden aufbau X.X.X.X
hierbei kann X maximal 255 sein. Also genau so groß wie ein Byte. Also kannst du eine IP auch mit 4 Byte darstellen. 4Byte = 32 Bit = Cardinal/Integer
Du müsstest also die Werte welche mit Punkt getrennt sind in ein Byte wandeln (IntToStr) und dann auf einen Cardinal packen (move)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Flo85

Registriert seit: 25. Apr 2006
23 Beiträge
 
#3

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 19:25
ich hätte jetzt grob gesagt du enfernst die punkte und achtest drauf das die einstelligen abschnitte bzw zweistelligen abschnitte mit "00" bzw "0" anfangen

bei der zahl an erster stelle ist es egal
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 19:29
eine variante wäre auch die einzelnen Zahlen welche durch Punkte getrennt sind in Hex zu wandeln (2 Stellig) und zu einer Zahl zusammenzufügen. Mit StrToInt wird dann daraus die Zahl mit der man rechnen kann.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#5

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 19:33
Ehrlich gesagt irritiert mich das ganze ein bisse
ich werd mal ne meditations runde einlegen ^^
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 19:37
Ok, hier ist eine Quick&Dirty-Lösung. Sie funktioniert allerdings nur für korrekt aufgebaute IP-Adressen:

Delphi-Quellcode:
function IPtoInt (aIP: string): Cardinal;
  var b1, b2, b3, b4 : Byte;
      k : Integer;
begin
  Val (aIP, b1, k);
  Delete (aIP, 1, k);
  Val (aIP, b2, k);
  Delete (aIP, 1, k);
  Val (aIP, b3, k);
  Delete (aIP, 1, k);
  Val (aIP, b4, k);
  Result := b1 * $1000000 + b2 * $10000 + b3 * $100 + b4;
end;
Gruß Hawkeye
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 19:46
Hier noch eine Diskussion zum Thema: klick

Grüße vom marabu
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#8

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 20:08
okay ich hab jetzt alle informationen die ich hab hier rein gepackt

IPTOINT:

Delphi-Quellcode:
function IPtoInt(aIP: string): Cardinal;
var i,j : integer;
    Teil1,Teil2,Teil3,Teil4: String;
begin
  j:=1;
  for i:=1 to Length(aip) do begin
    if aip[i]<>'.then begin
      case j of
        1: Teil1:=Teil1+aip[i];
        2: Teil2:=Teil2+aip[i];
        3: Teil3:=Teil3+aip[i];
        4: Teil4:=Teil4+aip[i];
      end;
    end else
      Inc(j);
  end;

  Result := MAKELONG(MAKEWORD(StrToInt(Teil1), StrToInt(Teil2)),MAKEWORD(StrToInt(Teil3), StrToInt(Teil4)));
end;
ps : es funzt ^^
Christian N.
Designed to make a difference

najjaronline.de
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 20:13
es scheint als hättest du den Hinweis auf den anderen Beitrag von marabu überlesen denn dort gibt es den Hinnweis auf die Funktion "inet_addr" aus der Unit "winsock" welche genau das macht was du wolltest. Es wäre also mit einem einzigen Funktionsaufruf erledigt gewesen.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
pacman1986

Registriert seit: 11. Feb 2005
Ort: Kirchhain
498 Beiträge
 
Delphi 2005 Personal
 
#10

Re: Gibt es eine Möglichkeit IPs in eine zahl zu verwandeln

  Alt 1. Mai 2006, 20:19
habs net durchgelesen ^^
Christian N.
Designed to make a difference

najjaronline.de
  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 16:03 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