AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Computername aus NetzwerkIP ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Computername aus NetzwerkIP ermitteln

Ein Thema von dopeline · begonnen am 14. Aug 2004 · letzter Beitrag vom 11. Sep 2007
Antwort Antwort
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#1

Computername aus NetzwerkIP ermitteln

  Alt 14. Aug 2004, 15:13
Hallo!

Ich habe eine IP eines Netzwerkrechners. Nun möchte ich die dahinterstehenden Computernamen ermitteln. Auf der Suche im Forum habe ich nur Anleitungen gefunden alle Netzwerkcomputer aufzulisten. Ich dachte mir das so:

Delphi-Quellcode:
function GetComputerName(ip:String):String;
begin
 ...
end;

// und am besten auch gleich noch umgekehrt:

function GetIP(ComputerName:String):String;
begin
 ...
end;
Wie macht man das?


Gruß, dopeline
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: Computername aus NetzwerkIP ermitteln

  Alt 14. Aug 2004, 15:38
Hallo dopeline,
Funktion 1:
Delphi-Quellcode:
function GetComputerNane(IPAddr: string): string;
var
  SockAddrIn: TSockAddrIn;
  HostEnt: PHostEnt;
  WSAData: TWSAData;
begin
  WSAStartup($101, WSAData);
  SockAddrIn.sin_addr.s_addr := inet_addr(PChar(IPAddr));
  HostEnt:= GetHostByAddr(@SockAddrIn.sin_addr.S_addr, 4, AF_INET);
  if HostEnt <> nil then
    Result := StrPas(Hostent^.h_name)
  else
    Result := '';
  end;
end;
Funktion 2:
Delphi-Quellcode:
function GetIp(ComputerName: string): string;
var
  TMPResult: string;
  WSA: TWSAData;
  H: PHostEnt;
  P: PChar;
begin
  if WSAStartUp($101, WSA) = 0 then
  begin
    GetMem(P, 255 + 1);
    StrPCopy(P, ComputerName);
    H := GetHostByName(P);
    FreeMem(P);
    if H <> nil then
    begin
      P := inet_ntoa(PInAddr(H^.h_addr_list^)^);
      TMPResult := StrPas(P);
    end;
    WSACleanUp;
    if TMPResult <> 'then
      Result := TMPResult;
    else
      Result := '0';
    end;
  end;
end;
und nicht vergessen die Unit Winsock einzubinden ...

bye
Claus
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
dopeline

Registriert seit: 7. Mär 2003
Ort: Berlin
304 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Computername aus NetzwerkIP ermitteln

  Alt 14. Aug 2004, 17:19
Vielen Dank Duffy!!!

Genau das habe ich gesucht!



Gruß, dopeline
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

Registriert seit: 17. Jan 2004
494 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Computername aus NetzwerkIP ermitteln

  Alt 17. Jul 2005, 18:25


Hier stehen ja schöne Beispiele, nur geht das auch umgekehrt? Also die IP mittels des Computernamen bekommen?

edit: habe diesen thread doch noch gefunden, aber erreiche ich mit Duffy Beitrag genau das? (habe kA) der sried
mfg zecke
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

Re: Computername aus NetzwerkIP ermitteln

  Alt 17. Jul 2005, 18:30
Beide Wege sind nicht eineindeutig. Aber ja, auch das geht. Schau dich einfach bei den Funktionen um, die oben auch verwendet wurden. gethostbyaddr() hat nämlich ein Geschwisterchen: gethostbyname().
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

Registriert seit: 3. Mär 2006
Ort: Waldbronn
4.303 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Computername aus NetzwerkIP ermitteln

  Alt 3. Sep 2007, 14:47
Hi DP,

Wie kann es sein, dass ich eine Ungültige IP bekomme?

Wenn ich zum Beispiel ein Netzwerk mit den Computernamen R50-03 und der 4. IP-Stelle von 191, dass ich dann 192.168.1.176 bekomme?
Eine Ping anforderung von einen aderen PC auf die ermittelte Adresse gibt nur Zeitüberschreitungen an. Und ein Ping an den Computernamen auch (es wird die fehlerhafte IP aufgelöst), aber an die über "ipconfig" ermittelte IP korrekt weitergeleitet wird?

Muss man da irgendwas im Netzwerk ändern?

MfG
xZise

PS: Ich weiß, der Thread ist alt, aber warum darf ich nicht hier antworten?
Fabian
Eigentlich hat MS Windows ab Vista den Hang zur Selbstzerstörung abgewöhnt – mkinzler
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.117 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Computername aus NetzwerkIP ermitteln

  Alt 3. Sep 2007, 14:58
Moin Fabian,

Zitat von xZise:
Wie kann es sein, dass ich eine Ungültige IP bekomme?
es wird nicht jedesmal, wenn Du einen Rechner mit Namen ansprichst eine DNS-Anfrage generiert, sondern erst einmal geprüft, ob denn der Name nicht schon im lokalen DNS-Cache steht.
Das könntest Du schon mal umgehen, indem Du mittels IPCONFIG /flushdns den Cache leerst, und somit eine Abfrage erzwingst.

Dann könntest Du noch ein Problem mit den DNS-Suffixes haben, evtl. eine falsche Reihenfolge, die dann zu einer falschen Auflösung führt.

Es könnte auch sein, dass der Rechner, warum auch immer, in der HOSTS (zu finden in C:\WINDOWS\system32\drivers\etc) eingetragen ist, und die, falsche, IP-Adresse von dort gezogen wird.

Was auch vorkommen kann:
Doppelte Rechnernamen im Netz.
Dann kann das auch schiefgehen.

Das nur mal so, was mir auf Anhieb zu Deiner Frage einfällt.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
susann

Registriert seit: 11. Sep 2007
1 Beiträge
 
#8

Re: Computername aus NetzwerkIP ermitteln

  Alt 11. Sep 2007, 20:50
Hallo ich hab mal ne Frage,ich würde gerne, das meine IP Adresse nicht überall angezeigt wird, was kann ich da tun?Ich muss sagen, das ich eigentlich keine Ahnung von der Programmiersprache hab, sorry.Gibt es trotsdem jemand, der mir das erklären würde?Dank Euch!Susann
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#9

Re: Computername aus NetzwerkIP ermitteln

  Alt 11. Sep 2007, 20:54
Hallo susann,

für Deine Frage solltest Du einen separaten Beitrag eröffnen, wenn Du wirklich Antworten bekommen möchtest
  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 19:15 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