AGB  ·  Datenschutz  ·  Impressum  







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

Ip Auslesen oder ganze Ipconfig

Ein Thema von Pump3r · begonnen am 7. Dez 2005 · letzter Beitrag vom 19. Jan 2011
Antwort Antwort
Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#1

Ip Auslesen oder ganze Ipconfig

  Alt 7. Dez 2005, 09:46
Hi, kann mir wer sagen, wie ich meine Ip-Adresse mit delphi auslesen kann?
oder den Rechnernamen, oder am besten die gesamte: [ipconfig /all]


bin dankbar für jede hilfe...


gruß pump3r
Christian Hermann
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#2

Re: Ip Auslesen oder ganze Ipconfig

  Alt 7. Dez 2005, 09:53
so kommst du an die ip adresse

Delphi-Quellcode:
uses winsock;//wichtig

function HoleIpAddresse: string;
var phoste: PHostEnt;
    Buffer: array [0..100] of char;
    WSAData: TWSADATA;
begin
    result := '';
    if WSAStartup($0101, WSAData) <> 0 then exit;
    GetHostName(Buffer,Sizeof(Buffer));
    phoste:=GetHostByName(buffer);
    if phoste = nil then
    result := '127.0.0.1'
    else
    result := StrPas(inet_ntoa(PInAddr(phoste^.h_addr_list^)^));
    WSACleanup;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(HoleIpAddresse);
end;
  Mit Zitat antworten Zitat
Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Ip Auslesen oder ganze Ipconfig

  Alt 7. Dez 2005, 09:54
danke!

den rechnernamen könnte ich aus der registry asulesen, nur ist der an einer stelle, wo ich nicht weiß ob das bei allen betreibsystemn gleich ist.
Christian Hermann
  Mit Zitat antworten Zitat
etom291272

Registriert seit: 16. Feb 2004
Ort: ---
232 Beiträge
 
#4

Re: Ip Auslesen oder ganze Ipconfig

  Alt 7. Dez 2005, 09:56
schau dir mal den code an
Delphi-Quellcode:
 GetHostName(Buffer,Sizeof(Buffer));
 phoste:=GetHostByName(buffer);
in diesem code ist auch die lösung für den computernamen
  Mit Zitat antworten Zitat
Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Ip Auslesen oder ganze Ipconfig

  Alt 7. Dez 2005, 09:57
aha!

hehe, ok das bekomm ich hin.


danke
Christian Hermann
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#6

AW: Re: Ip Auslesen oder ganze Ipconfig

  Alt 19. Jan 2011, 01:01
aha!

hehe, ok das bekomm ich hin.


danke
Der Thread ist zwar alt, aber ich habe überall nur Funktionen gefunden die selbst geschrieben wurden als ich danach gesucht habe.

Es geht auch einfacher:

1.) Komponent TCPServer auf die Form ziehen.
2.) Im Quellcode entsprechend schreiben was man braucht, z.B. TCPServer1.LocalHostAddr (In deinem Falle).
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#7

AW: Ip Auslesen oder ganze Ipconfig

  Alt 19. Jan 2011, 02:30
Es scheint einfacher zu sein, ist aber eher unsauber. Du holst dir ziemlich viel Overhead in dein Programm, nur um die IP-Adresse auszulesen?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Mike_

Registriert seit: 26. Mär 2008
98 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Ip Auslesen oder ganze Ipconfig

  Alt 19. Jan 2011, 21:57
Es scheint einfacher zu sein, ist aber eher unsauber. Du holst dir ziemlich viel Overhead in dein Programm, nur um die IP-Adresse auszulesen?
Wenn man es so genau nimmt hast du natürlich Recht, dass man sich eine große Unit dadurch einbindet welche man nicht im vollen Funktionsumfang ausschöpft.

Dann gibt es die Methode sich einfach aus der Unit die Function zu ziehen bzw "abzuschreiben", so dass diese auch außerhalb der Unit funktioniert (In diesem Falle die Sockets Unit) oder man schreibt es gleich selbst.

Durch die Unit hätte man aber gleich seinen "Anhaltspunkt, wie was funktioniert".

Als Beispiel für diesen Fall:


Delphi-Quellcode:
function TIpSocket.LocalHostAddr: TSocketHost;
begin
  Result := LookupHostAddr(LocalHostName);
end;

Wobei wir dann zu folgendem kommen

Delphi-Quellcode:
function TIpSocket.LookupHostAddr(const hn: string): TSocketHost;
var
  h: PHostEnt;
begin
  Result := '';
  if hn <> 'then
  begin
    if hn[1] in ['0'..'9'] then
    begin
      if inet_addr(pchar(hn)) <> INADDR_NONE then
        Result := hn;
    end
    else
    begin
      h := gethostbyname(pchar(hn));
      if h <> nil then
        with h^ do
        Result := format('%d.%d.%d.%d', [ord(h_addr^[0]), ord(h_addr^[1]),
              ord(h_addr^[2]), ord(h_addr^[3])]);
    end;
  end
  else Result := '0.0.0.0';
end;
Ich finde es ist eine wunderbare Methode um sich Funktionen zu stibitzen ohne viel Aufwand
(Selbst wenn man nicht die ganze Unit einbinden will aus deinen o.g. Gründen)

Hat mir im "täglichem Betrieb" oft geholfen.
  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 20:49 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