Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   IP Adresse einer Internetseite auslesen (https://www.delphipraxis.net/154284-ip-adresse-einer-internetseite-auslesen.html)

martinf16 4. Sep 2010 02:01

IP Adresse einer Internetseite auslesen
 
Ich würde gerne die IP Adresse einer Internetseite auslesen. Das heißt, mein Programm hat eine Internetadresse, zum Beispiel www.example.com und nun möchte ich die IP, die sich hinter der Adresse verbirgt herausbekommen.

Geht das irgendwie?! Eigentlich müsste ja wenn man den Text einer Seite ausliest auch irgendwo im Hintergrund die IP eine Rolle spielen, oder?

Garfield 4. Sep 2010 07:31

AW: IP Adresse einer Internetseite auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Dazu könnte man den Befehl PING in der Konsole nutzen.

himitsu 4. Sep 2010 07:35

AW: IP Adresse einer Internetseite auslesen
 
Eigentlich müßte man irgendwie mit den Indy diese (Server)-IP auslesen können.
(Ich weiß nur nicht mehr wie/wo.)

Und 'ne TIdPing-Komponente gibt es dort auch.

Sir Rufo 4. Sep 2010 08:20

AW: IP Adresse einer Internetseite auslesen
 
Das geht ganz hervorragend mit Synapse
Delphi-Quellcode:
uses
  Classes,
  blcksock; // Unit von Synapse

function GetIpsFromHost( const Host : string ) : string;
var
  Response : TStringList;
begin
  Response := TStringList.Create;
  try
    with TBlockSocket.Create do
      try
        ResolveNameToIP( Host, Response );
      finally
        Free;
      end;
    Result := Response.CommaText;
  finally
    Response.Free;
  end;
end;

helgew 4. Sep 2010 08:24

AW: IP Adresse einer Internetseite auslesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
- Thema verfehlt -

Matze 4. Sep 2010 08:28

AW: IP Adresse einer Internetseite auslesen
 
Oder mit Bordmitteln:
Delphi-Quellcode:
uses WinSock;

function GetIPAddress(const HostName: string): string;
var
  R: Integer;
  WSAData: TWSAData;
  HostEnt: PHostEnt;
  Host: string;
  SockAddr: TSockAddrIn;
begin
  Result := '';
  R := WSAStartup($0101, WSAData);
  if R = 0 then
  try
    Host := HostName;
    if Host = '' then
    begin
      SetLength(Host, MAX_PATH);
      GetHostName(@Host[1], MAX_PATH);
    end;
    HostEnt := GetHostByName(@Host[1]);
    if HostEnt <> nil then
    begin
      SockAddr.sin_addr.S_addr := Longint(PLongint(HostEnt^.h_addr_list^)^);
      Result := inet_ntoa(SockAddr.sin_addr);
    end;
  finally
    WSACleanup;
  end;
end;
Aufruf z.B.
Delphi-Quellcode:
LblIP.Caption := GetIPAddress('delphipraxis.net');
Quelle: DF

Sir Rufo 4. Sep 2010 08:29

AW: IP Adresse einer Internetseite auslesen
 
Zitat:

Zitat von helgew (Beitrag 1047423)
Hi,

vor ein paar Jahren habe ich den angefügten Code geschrieben, damit lässt sich alles, was plausibel nach IP ausschaut, aus einem string extrahieren. Ich habe damals eine Liste von IP-Seiten heruntergeladen und dann die häufigste, als "externe" umworbene IP genommen, vielleicht hilft das ja.

Er hat aber keinen String wo die IP Adresse drin steht, sondern den Host-Namen und dazu möchte er die IP Adresse haben.
Das geht aber imho nur über ein DNS-Auflösung.

himitsu 4. Sep 2010 08:34

AW: IP Adresse einer Internetseite auslesen
 
@helgew: Komplett am Thema vorbei.
Der TE möchte eine URL/Domain in eine IP umwandeln.
Also z.B. die IP hinter delphi-praxis.de erfahren.

[edit]
@Sir: Tschuldschung, die RedBox vergaß dich zu melden und Matze will das hier nicht löschen :cry:

Matze 4. Sep 2010 08:34

AW: IP Adresse einer Internetseite auslesen
 
Der Code von helgew würde für IPv6-Adressen auch nicht funktionieren, zumal der eh was ganz anderes macht, wie bereits erwähnt.
Die anderen funktionieren für IPv6-Adressen vermutlich schon.

helgew 4. Sep 2010 08:34

AW: IP Adresse einer Internetseite auslesen
 
@Sir Rufo: siehe edit oben, Asche über mein Haupt! :oops: Ihr seid ja schon wieder aktiv zu dieser frühen Stunde^^
@himitsu: es war ja sonnenklar, dass es von deiner Seite wieder Tadel hagelt. Guten Morgen ;-)
@Matze: den verlinkten code habe ich für genau dieses Problem an anderer Stelle auch verwendet.

Garfield 4. Sep 2010 11:40

AW: IP Adresse einer Internetseite auslesen
 
Zitat:

Zitat von Matze (Beitrag 1047424)
Oder mit Bordmitteln:
Delphi-Quellcode:
uses WinSock;

...

In meinem Turbo Delphi gibt es keine Winsock.

Matze 4. Sep 2010 12:05

AW: IP Adresse einer Internetseite auslesen
 
Zitat:

Zitat von Garfield (Beitrag 1047467)
In meinem Turbo Delphi gibt es keine Winsock.

In meinem schon. :gruebel:

Garfield 4. Sep 2010 12:14

AW: IP Adresse einer Internetseite auslesen
 
Noch mal nachgesehen und jetzt findet Turbo Delphi die winsock. :oops:

Phoenix 4. Sep 2010 12:26

AW: IP Adresse einer Internetseite auslesen
 
Einem Hostnamen können via DNS auch mehrere IP-Adressen zugeordnet werden (eine ganz einfache Form des Load-Balancing).

Das heisst im Umkehrschluss also, dass es 'die IP-Adresse einer Internetseite' nicht geben kann - denn es können ohne weiteres mehrere sein.

Matze 4. Sep 2010 12:32

AW: IP Adresse einer Internetseite auslesen
 
Rein interessehalber (ich brauche das nicht):
Gäbe es eine Möglichkeit, diese alle zu bekommen? Davon habe ich bisher nie gehört.

Phoenix 4. Sep 2010 12:47

AW: IP Adresse einer Internetseite auslesen
 
Mittels einer einfachen DNS-Abfrage. Unter windows z.B. nslookup.
Es gibt auch webbasierte Tools: http://www.webmaster-toolkit.com/dns-query.shtml

google.de macht das z.B:
Code:
C:\Users\Sebastian Gingter>nslookup google.de
Server: fritz.box
Address: 192.168.178.1

Nicht autorisierende Antwort:
Name:   google.de
Addresses: 74.125.43.105
          74.125.43.104
          74.125.43.106
          74.125.43.147
          74.125.43.103
          74.125.43.99


C:\Users\Sebastian Gingter>
Bei dem Verfahren werden einfach mehrere IP Adressen eingetragen, die die gleiche Priorität haben. Der haupt-DNS-Server sollte theoretisch jedesmal in einer anderen Reihenfolge antworten (d.H. wenn Du das machst, sollten die Adressen in einer anderen Reihenfolge auftauchen). Dein Rechner nimmt bei einem Request immer die erste Antwort. Somit werden die anfragenden Clients (mehr oder weniger zufällig) auf alle Server verteilt.

Als echtes Loadbalancing ist das aber nur minder geeignet: Im worst case bekommt Server 1 zufällig genau die Clients, die eine hohe Last erzeugen und Server 2 bekommt genau die Clients, die immer nur eine einzelne Anfrage stellen. Server 1 schwitzt sich zu Tode und 2 langweilt sich. Deswegen ist das eher als 'Poor man's LB' anzusehen. Besser wäre ein echter Loadbalancer.

Matze 4. Sep 2010 12:49

AW: IP Adresse einer Internetseite auslesen
 
Interessant. Danke für die Info. :)

Sir Rufo 4. Sep 2010 13:43

AW: IP Adresse einer Internetseite auslesen
 
@Matze Sieh dir meinen Code an, der liefert alle IP Adressen
Darum ist ja Response eine Stringlist ;)

Garfield 4. Sep 2010 14:56

AW: IP Adresse einer Internetseite auslesen
 
Zitat:

Zitat von Phoenix (Beitrag 1047485)
Bei dem Verfahren werden einfach mehrere IP Adressen eingetragen, die die gleiche Priorität haben. Der haupt-DNS-Server sollte theoretisch jedesmal in einer anderen Reihenfolge antworten (d.H. wenn Du das machst, sollten die Adressen in einer anderen Reihenfolge auftauchen).

Es können dann auch andere sein:
Code:
C:\>nslookup google.de
Server:  d-lb-a01.isp.t-ipnet.de
Address: 217.237.148.70

Nicht autorisierte Antwort:
Name:      google.de
Addresses: 209.85.135.147
           209.85.135.103
           209.85.135.106
           209.85.135.99
           209.85.135.105
           209.85.135.104

Sir Rufo 4. Sep 2010 23:35

AW: IP Adresse einer Internetseite auslesen
 
@Garfield diese "anderen" IPs als die von Phoenix kommen mE durch die unterschiedlichen Provider (Zugangspunkte)
Gerade Google ist definitiv mit mehr als einer Leitung am Internet.
Somit müssen da auch mehrere/unterschiedliche IPs existieren.

Garfield 5. Sep 2010 10:46

AW: IP Adresse einer Internetseite auslesen
 
Das nehme ich auch an. Wenn ich die IPs von Phoenix bei IP Address Locator eingebe, kommt diese Antwort:
Zitat:

This IP address doesn't seem to be registered to a particular country.
Bei meinen
Zitat:

209.85.135.147 is located in United States


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