AGB  ·  Datenschutz  ·  Impressum  







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

Lokale IP(s) ermitteln

Ein Thema von CalganX · begonnen am 31. Jan 2003 · letzter Beitrag vom 31. Jan 2003
 
MathiasSimmack
(Gast)

n/a Beiträge
 
#3
  Alt 31. Jan 2003, 12:21
Da unser Chak-o-tay ab und zu bei www.ensacom.de Tipps veröffentlicht, habe ich mal von dort die IP-Funktion abgeschrieben (mehr oder weniger ):
Delphi-Quellcode:
uses
  WinSock;

function GetLocalIPs: string;
type
  PPInAddr = ^PInAddr;
var
  wsadata : TWSAData;
  hostinfo : PHostEnt;
  addr : PPInAddr;
begin
  Result := '';

  if(WSAStartUp(MAKEWORD(1,1),wsadata) = 0) then
  try
    hostinfo := gethostbyname(nil);
    if(hostinfo <> nil) then begin
      addr := pointer(hostinfo^.h_addr_list);

      while(addr^ <> nil) do begin
        Result := Result + inet_ntoa(addr^^) + ^M^J;
        inc(addr);
      end;
    end;
  finally
    WSACleanUp;
  end;
end;
Warum?
Weil sie -laut Beschreibung!- alle IPs zurückliefert. Mangels LAN kann ich das im Moment zwar nicht prüfen, aber ich vertraue einfach mal darauf, dass bei ensacom kein Blödsinn steht. (Wer ein LAN hat bzw. eine eingebaute Netzwerkkarte, kann´s ja mal fix testen und Bescheid sagen.)


Übrigens: MAKEWORD(1,1) ist das selbe wie $0101. Ich finde es nur lesbarer, weil man die Versionsnummer ohne viel Rumraten erkennt und einstellen kann. Ohne groß zu Überlegen: wie würde man hexadezimal die Version 2.0 angeben? Wer jetzt gedacht hat $0200 liegt leider falsch. Anders herum wäre richtig: $0002; da das niederwertige Byte die Hauptversionsnummer angibt.

So ein Missgeschick kann mit MAKEWORD(2,0) nicht geschehen.

Kann man im PSDK zu "WSAStartup" nachlesen.
  Mit Zitat antworten Zitat
 

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 20:24 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