AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wie bestehende LAN-Verbindungen (IP's) ermitteln?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie bestehende LAN-Verbindungen (IP's) ermitteln?

Offene Frage von "zecke"
Ein Thema von zecke · begonnen am 17. Jun 2005 · letzter Beitrag vom 17. Jun 2005
Antwort Antwort
Benutzerbild von zecke
zecke

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

Wie bestehende LAN-Verbindungen (IP's) ermitteln?

  Alt 17. Jun 2005, 03:05


ich wollte ein kleines tool erstellen, bei dem man prüft zu welchen IP's eine Netzwerkverbindung (LAN) besteht und diese dann in einer ListBox oder Memo ausgeben. Problem: Ich habe noch nie etwas in dieser Richtung getan (mit Delphi).

Bei meinen Recherchen bin ich auf TidICMPClient und IsNetWorkAlive gestoßen. TidICMPClient habe ich bereits getestet, und ich nehme an, dass die Ausgabe (Zahl) beim OnReply dem Port entspricht (welchem kA).

Wie und mit welchen Komponenten kann ich die oben beschriebene Idee am besten, unkompliziertesten, einfachsten UND schnellsten (kurz gesagt: am TOLLSTEN ) umsetzen

bin für jede antwort dankbar!
mfg zecke
  Mit Zitat antworten Zitat
Benutzerbild von svenwel.de
svenwel.de

Registriert seit: 8. Apr 2005
Ort: Neunkirchen
23 Beiträge
 
Delphi 7 Personal
 
#2

Re: Wie bestehende LAN-Verbindungen (IP's) ermitteln?

  Alt 17. Jun 2005, 03:54
Delphi-Quellcode:
type
  PNetResourceArray = ^TNetResourceArray;
  TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                              NetResource: PNetResource;
                              out Entries: DWord;
                              out List: PNetResourceArray): Boolean;
var
  EnumHandle: THandle;
  BufSize: DWord;
  Res: DWord;
begin
  Result := False;
  List := Nil;
  Entries := 0;
  if WNetOpenEnum(RESOURCE_GLOBALNET,
                  ResourceType,
                  0,
                  NetResource,
                  EnumHandle) = NO_ERROR then begin
    try
      BufSize := $4000; // 16 kByte
      GetMem(List, BufSize);
      try
        repeat
          Entries := DWord(-1);
          FillChar(List^, BufSize, 0);
          Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
          if Res = ERROR_MORE_DATA then
          begin
            ReAllocMem(List, BufSize);
          end;
        until Res <> ERROR_MORE_DATA;

        Result := Res = NO_ERROR;
        if not Result then
        begin
          FreeMem(List);
          List := Nil;
          Entries := 0;
        end;
      except
        FreeMem(List);
        raise;
      end;
    finally
      WNetCloseEnum(EnumHandle);
    end;
  end;
end;

procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);

procedure ScanLevel(NetResource: PNetResource);
var
  Entries: DWord;
  NetResourceList: PNetResourceArray;
  i: Integer;
begin
  if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try
    for i := 0 to Integer(Entries) - 1 do
    begin
      if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or
        (NetResourceList[i].dwDisplayType = DisplayType) then begin
        List.AddObject(NetResourceList[i].lpRemoteName,
                      Pointer(NetResourceList[i].dwDisplayType));
      end;
      if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
        ScanLevel(@NetResourceList[i]);
    end;
  finally
    FreeMem(NetResourceList);
  end;
end;

begin
  ScanLevel(Nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items);
end;
Mit Freundlichen grüßen von google.de und SwissDelphiCenter.ch
Sven W.
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

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

Re: Wie bestehende LAN-Verbindungen (IP's) ermitteln?

  Alt 17. Jun 2005, 14:02
-_- danke. werde es mal bei der LAN nachher testen. Also das läuft schon mal ohne Zicken zu machen

mfg zecke
  Mit Zitat antworten Zitat
Benutzerbild von zecke
zecke

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

Re: Wie bestehende LAN-Verbindungen (IP's) ermitteln?

  Alt 17. Jun 2005, 20:58


scheint zu funktionieren - danke!

problem nur, dass er den rechnernamen ausgibt, ich bräuchte noch die IP. kannst du mir verraten wie auch an diese komme. (deswegen in im topic des threads "(IP's)"

aber der grundstein ist gesetzt, thx

[edit]

kurz gesagt: ich möchte die IP anzeigen, mit welcher der eigene PC über LAN eine verbindung hat

[/edit]
mfg zecke
  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 21:46 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