Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Delphi und Netzwerk

Empfohlene Antworten

Veröffentlicht

Ich habe ein problem mit Delphi auf allgemeine Netzwerksachen zu zugreifen z.B. wie bekomme ich alle Benutzer herraus die im Netz sind , wie kann ich auf ihre rechner zu greifen etc...

wäre schön wenn mir einer helfen könnte

:confused:

na ich benötige für ein programm eine liste aller die sich im Netzwerk befinden es ist eigentlich egal ob das nun die IP oder der Name der Personen ist ... ich habe allerdings keine ahnung wie ich das eine noch das andere hin bekomme .. eine Funktion die einen Ping simuliert wäre nicht schlecht ...

Wenn du Netzwerk"arbeit" erledigen willst, kommst du eigentlich nicht an den INDY-Komponenten vorbei.

Und um rauszubekommen, welche IP's "aktiv" sind, versuche doch einfach, alle IP's in deinem Subnetz auf einem öffentlichen Port (21, 23, 80) zu connecten.

greetings,

DZ

Also die Computernamen kriegt man ganz einfach raus:

Schreib einfacdh ne Funktion, die Die folgenden Funktionen verwendet: WNetOpenEnum, WNetCloseEnum und WNetEnumResource. Ist allerdings ein riesiger Aufwand: ich post mal den Quelltext zur ermittlung aller Rechnernamen in allen Domains:

Function GetComputerNames: TStringList;

Var

neh1, neh2, neh3: Cardinal;

Count: Cardinal;

x, y, z: Integer;

net1, net2, net3: PNetResource;

tmpnet1, tmpnet2, tmpnet3: PNetResource;

netsize1, netsize2, netsize3: Cardinal;

Begin

Result := TStringList.Create;

Try

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, Nil, neh1);

Try

Count := $FFFFFFFF;

NetSize1 := $FFFF;

GetMem(Net1, NetSize1);

Try

While WNetEnumResource(neh1, Count, net1, netsize1) <> ERROR_NO_MORE_ITEMS Do

Begin

tmpnet1 := net1;

If Count = 0 Then

Break;

For X := 0 To Count - 1 Do

Begin

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, tmpnet1, neh2);

Try

Count := $FFFFFFFF;

NetSize2 := $FFFF;

GetMem(Net2, NetSize2);

Try

While WNetEnumResource(neh2, Count, net2, netsize2) <> ERROR_NO_MORE_ITEMS Do

Begin

tmpnet2 := net2;

If Count = 0 Then

Break;

For Y := 0 To Count - 1 Do

Begin

WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, tmpnet2, neh3);

Try

Count := $FFFFFFFF;

NetSize3 := $FFFF;

GetMem(Net3, NetSize3);

Try

While WNetEnumResource(neh3, Count, net3, netsize3) <> ERROR_NO_MORE_ITEMS Do

Begin

tmpnet3 := net3;

If Count = 0 Then

Break;

For Z := 0 To Count - 1 Do

Begin

Result.Add(String(tmpnet3^.lpRemoteName));

Inc(tmpnet3);

End;

End;

Finally

FreeMem(Net3);

End;

Finally

WNetCloseEnum(neh3);

End;

Inc(tmpnet2);

End;

End;

Finally

FreeMem(Net2);

End;

Finally

WNetCloseEnum(neh2);

End;

Inc(tmpnet1);

End;

End;

Finally

FreeMem(Net1);

End;

Finally

WNetCloseEnum(neh1);

End;

Except

On E: Exception Do

Begin

MessageDlg(E.ClassName + ': ' + E.Message, mtError, [mbOK], 0);

Result.Free;

Result := Nil;

End;

Rnd;

End;

Auf der Nächsten Verschachtelungsebene wrde dir das Programm dann alle Freigabenamen aller Rechner in Allen Domains von Allen Netzwerken zurückgeben ... Weitere Hilfe gibts bei den Funktionen die mit WNet anfangen in der Win32.hlp (Microsoft Programmer's Guide) ... dem wohl unbeliebtesten Schriftstück der Delphidoku???

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.