Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi eindeutige Workstationnr. im LAN (https://www.delphipraxis.net/671-eindeutige-workstationnr-im-lan.html)

Hansa 21. Aug 2002 18:34


eindeutige Workstationnr. im LAN
 
Hallo leute,

im Netzwerk braucht man manchmal eine eindeutige Nr. pro Arbeitsplatz. Hier gehts hauptsächlich um das "weiterverarbeiten" zu einem Dateinamen. An jeder Station soll vom Programm aus eine Datei erzeugt werden können, die nur an einem Platz benutzt wird.

Dadurch wird dann sichergestellt, daß es im Netz zu keinen Kollisionen kommt. Bei Novell wird beim Login eine WS-Nr. vergeben. Beim Programmstart setze ich dann eine Variable auf die von Novell vergebene Nr. Weils so schön ist, steht auch auf dem Bildschirm "Station x". Dadurch kann man sofort merken, falls das Netz abgestürzt ist, dann steht nämlich Station 0 da.

Wie gesagt, ich benutze sie für Dateien, die nur während der Laufzeit und nur an einem Platz gebraucht werden. Weiß jemand, wie diese Nr. oder etwas ähnliches in einem Windows Netzwerk funktioniert. Notfalls muß ich den Computernamen usw. benutzen. Eine fortlaufende Zahl wäre aber besser. Ist der Name überhaupt eindeutig :?: :?: Wo ich den namen herkriegen soll weiß ich allerdings auch nicht.


Gruß
Hansa

Daniel 21. Aug 2002 18:36

Vielleicht reicht für Deine Zwecke das Auslesen der IP-Adresse? Spätestens in Kombination mit der Subnet-Mask muss diese doch eindeutig sein, oder? Also zumindest so eindeutig, wie Du es im Rahmen Deines Projektes benötigst....


Grüße,
Daniel

sakura 21. Aug 2002 21:31

Schau mal in die Code-Library, da habe ich im Bereich Internet eine Methode vorgestellt, um die MAC-Adresse herauszubekommen. Wenn zwei Rechner die gleiche innerhalb des Netzwerkes haben, dann geht gar nichts mehr. Von daher kannst Du bei dieser davon ausgehen, dass diese einmalig ist.

...:cat:...

Christian Seehase 21. Aug 2002 21:40

Moin Zusammen,

um genau zu sein sollte eine MAC-Adresse eigentlich weltweit eindeutig sein. Mir ist allerdings schon einmal der Fall vorgekommen, wo es ein Hersteller, ich nenne jetzt keine Namen, es tatsächlich geschafft hat zwei Netzwerkkarten mit der gleich MAC zu produzieren.

Innerhalb eines Netzes, in dem sich die Rechner alle gegenseitig "sehen" können, kann man allerdings davon ausgehen, dass es keine doppelten MACs gibt. Der Rechner der mit einer schon vorhandenen MAC Adresse ins Netz zu gehen versucht dürfte scheitern.

Die IP Adresse halte ich keines falls für ausreichend. Gerade in grösseren Netzen wird die meist per DHCP vergeben.

sakura 22. Aug 2002 13:38

3COM :?:

Einige neuere Netzwerkkarten erlauben das manuelle Einstellen der MAC Adresse. Aber das macht eigentlich keiner - zumal die Gefahr der Verdopplung der Nummern besteht.

Christian Seehase 22. Aug 2002 13:49

Moin Sakura,

nein. :mrgreen:

Hansa 22. Aug 2002 15:12

Hallo Sakura und Chris,

mir ist ein Fall bekannt, bei dem eine ganze Produktion von Netzwerkkarten dieselbe Nr. hatte. Die arme Firma, die sich ein neues Netzwerk mit dieser Karte aufgebaut hat und aus irgendwelchen Gründen diese Nr. braucht!

Ich brauche und vor allem will sie nicht verwenden.

Gruß
hansa

sakura 22. Aug 2002 15:22

Was willst Du anstelle der MAC Adresse nutzen :?:

Hansa 22. Aug 2002 15:46

Hallo Sakura, :shock:

Genau ! Das ist halt hier die Frage!!

Gruß
Hansa

Christian Seehase 22. Aug 2002 16:10

Moin Hansa,

wenn Dir die MAC nicht zusagt, obwohl die Chance einer Doublette eigentlich null ist, bliebe halt noch der Weg DOMAIN+COMPUTERNAME.
Sollte auch eindeutig sein.
Auch wenn mir zur Zeit kein Weg einfällt dies auszulesen, ginge dann noch die Domänenkennung der Workstation. Diese sollte zumindest innerhalb einer Domäne eindeutig sein.

sakura 22. Aug 2002 18:24

Das gäbe aber wieder zu bedenken, dass ein Rechner in mehreren Domainen angemeldet sein kann (je nach Nutzer) und auch, dass ein Rechner recht leicht umbenannt werden kann.


@Hansa: P.S.: Wir setzen die MAC Adresse seit ca. 2 Jahren zur Rechneridentifizierung ohne jegliche Probleme ein.

...:cat:...

Christian Seehase 22. Aug 2002 18:34

Moin Sakura,

der Wechsel funktioniert aber nicht, während ein User angemeldet ist, was ja wiederum notwendig wäre, damit das Programm läuft.

Allerdings halte ich die MAC Adresse auch für die sicherste Methode.
In einem Netz in dem das nicht funktioniert ist ja wohl sowieso einiges schief.

sakura 22. Aug 2002 18:38

Zitat:

Zitat von Christian Seehase
der Wechsel funktioniert aber nicht, während ein User angemeldet ist, was ja wiederum notwendig wäre, damit das Programm läuft.

Das ist klar - aber weiss ich, ob er die gleiche Datei bei jedem Programmstart will, oder ob es dann egal ist. :mrgreen:

...:cat:...

Christian Seehase 22. Aug 2002 21:42

Moin Sakura,

na schön... :mrgreen:

Ich hab' aber noch eine Idee:
Man könnte ja bei der Installation des Programmes eine eindeutige Nummer mit CoCreateGuid erzeugen und speichern. Diese identifieziert dann die Workstation doch recht eindeutig.

Wird diese GUID dann bei der Installation gleich noch im Netz in eine zentral gespeicherte Tabelle eingetragen, so könnte man die Stationen dennoch durchnummerieren.

Wo ich das gerade schreibe fällt mir ein:
Wozu eine GUID? Bei der Installation wird aus dem Netz auf eine Zentrale Datei zugegriffen, die eine Tabelle der möglichen Workstation Nummern enthält, der nächste freie Eintrag ausgelesen, lokal gespeichert, und dann als belegt markiert.
Die Tabelle muss natürlich bis zum Abschluss der Verteilung gelockt werden, damit es keine doppelten WS Nummern gibt.
Da die Auswahl der Nummer ja schnell erledigt sein dürfte, sollte es auch bei einer Vielzahl gleichzeitiger Installationen nicht zu Störungen kommen.

Hansa 23. Aug 2002 01:30

Ch. Seehase hat das Problem ziemlich genau erkannt! Es ist doch nicht so einfach, oder? Mac-Adresse oder sonstige hardware-Sachen kommen nicht in Betracht!

@Sakura : gehen könnte es schon, aber wenn eine Karte ausgetauscht werden muß :?: :?:

Hatte schon folgenden Fall : wollte einem Freund fürs Internet etwas machen. Der war aber lange in Asien und hatte alles auf seinem (in Malaysia gekauften) Notebook. Kein öäü (Fn Alt Strg h oder so für ß), also 4 Finger System, z-y Verwechsler meinerseits und die Seite sollten möglichst viele in Deutschland sehen!

Computername wäre so ähnlich.

Netzwerk-Betriebssysteme müßten das ohne weiteres bewerkstelligen können. Wozu gibt es 5er oder 500er lizenzen nicht zum selben Preis?

Bei bis 5 Plätzen würde ich einfach sagen, trotz Netzwerk:Festplatte Pflicht, eine Datei lokal anlegen die die Nr. hat, aber was für ein Wartungsaufwand!

Ich wollte ja eigentlich nur wissen, wie es in Delphi zu realisieren ist, merke aber jetzt, daß zuerst geklärt werden muß, welcher Weg eingeschlagen werden muß. Notfalls ist Novell auch pflicht. Aber laut denen ist Interbase nur bis Version 4 bzw.5.X "zertifiziert". Diese Spinner, gehen soll es aber auch mit neueren Versionen.

Frage morgen mal bei MS nach wie so etwas bei Win 2000 Server funktioniert und gebe die Antwort hier bekannt.


Gruß
Hansa

Christian Seehase 23. Aug 2002 10:26

Moin Hansa,

Zitat:

eine Datei lokal anlegen die die Nr. hat, aber was für ein Wartungsaufwand!
Da das nur einmal bei der Installation erfolgen muss kann ich das nicht so recht nachvollziehen. Wo ist da der Wartungsaufwand?
Das mal ein Rechner neu aufgesetzt werden muss, ausgetauscht wird, oder, bei Verwendung der MAC, die Netzwerkkarte kann immer passieren.
Andere Software, die eine Identifikation des Rechners erfordert, erfordert auch eine Anmeldung der Workstation (z.B. mit WS Namen) um Zugriffe zuzulassen. Oder aber es wird die IP registriert, was in vielen Netzen ein Problem darstellt, da ja gerade in grossen Netzen gerne mit DHCP gearbeitet wird, was dann für die betroffenen Rechner heisst, dass diese dann doch eine feste IP brauchen.

Je grösser das Netz, umso mehr Bewegung ist drin, und umso geringer die Chance eine 100% Abdeckung zu erreichen.

Hansa 23. Aug 2002 10:57

der Vollständigkeit halber hier noch 2 Links :


http://www.delphi-total.com/probs/a002.htm
(Ermitteln des Computer-Namens)

http://www.delphi-total.com/probs/a039.htm
(Ermitteln der IP-Adresse)

habe es noch nicht getestet!

Gruß
Hansa

Sharky 23. Aug 2002 10:59

Hai Hansa,

wäre es nicht möglich die SID des Users/Domain zu verwenden?

Leider kenne ich mich mit den APIs nicht gut aus, aber diese
sieht doch ganz gut aus:

LookupAccountName

Hansa 25. Jun 2003 23:32

das Thema ist noch nicht gegessen. Vielmehr ist es im Sande verlaufen. :mrgreen: Ich formuliere die Frage etwas anders: 1. Rechner wird eingeschaltet. erhält die Nr. 1. 2. Rechner wird eingeschaltet. Das ist dann die 2. Geht so was oder nicht ? Vielleicht gibts ja mittlerweile neue Erkenntnisse.

Christian Seehase 25. Jun 2003 23:36

Moin Hansa,

wenn Du einen Rechner hast, bei dem sich die anderen anmelden müssen um ihre Nummer abzuholen bzw. zugeteilt zu bekommen, dürfte das machbar sein.
Dieser Rechner muss dann natürlich die Nummer verwalten und könnte auch in Regelmässigen Abständen bei seinen Clients nachfragen, um zu sehen, ob sie denn noch aktiv sind.

Hansa 26. Jun 2003 00:01

Zitat:

Zitat von Christian Seehase
... bei dem sich die anderen anmelden müssen um ihre Nummer abzuholen bzw. zugeteilt zu bekommen, dürfte das machbar sein...

Und wie? Bin am überlegen, das selber zu machen, indem ich so was wie eine Login-Table in der DB anlege.

Christian Seehase 26. Jun 2003 00:12

Moin Hansa,

Du nimmst z.B. von den Indys TidTCPServer und TidTCPClient für die Netzwerkfunktionalität.
Der Verwaltungsrechner stellt dann fest "Oh, da hat ein Client eine freie Nummer angefragt" sucht eine raus und schickt sie rüber. Intern merkt sich der Verwaltungsrechner dann zu welchem Rechner die Nummer gehört.
Wenn sich der Client wieder mit der Nummer meldet, kann der Verwaltungsrechner identifizieren, welcher Rechner das war.

Ob das jetzt bei der Erstanmeldung geschieht, so dass sich der Client "seine" Nummer merkt und auch bei einem Neustart des Rechners wieder verwendet, hängt jetzt davon ab, was man mit dieser Identifizierung vorhat.

Hansa 26. Jun 2003 00:15

Zitat:

Zitat von Christian Seehase
... Nummer merkt und auch bei einem Neustart des Rechners wieder verwendet, hängt jetzt davon ab, was man mit dieser Identifizierung vorhat.

Eigentlich nichts. Ich brauche eine/mehrere temporäre Tabellen.

Christian Seehase 26. Jun 2003 00:18

Moin Hansa,

sorry, aber jetzt komm' ich nicht mehr mit. ;-)

Hansa 26. Jun 2003 00:24

zu hoch für Dich? :lol: Also nee, es geht um ein Netztwerk. Jeder gibt was ein und das muß auf dem Server gespeichert werden. Aber das muß auf möglichst einfache Art unterschieden werden können. Die Anforderung besteht nur darin, daß keine zwei Leute in eine Datei schreiben, aber auf dem Server !!

Christian Seehase 26. Jun 2003 00:29

Moin Hansa,

dann reicht ja die temporäre Zuweisung.
Du könntest dann auch noch vorsehen, dass bei gezieltem Programmende auch eine Abmeldung erfolgt, bei der die Nummer dann wieder freigegeben wird.

Hansa 26. Jun 2003 00:50

Das ganze kommt von Novell, da wird jeder User mit einer Nr.angemeldet, in der Reihenfolge der Anmeldung vergeben. Da hat man dann eine eindeutige WS-Nr. Bei Win müßte ich den Weg über eine MAC-Adresse gehen und das gefällt mir nicht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 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