Laden...

Computernamen ermitteln? Tricky?!

Erstellt von boon vor 12 Jahren Letzter Beitrag vor 12 Jahren 1.584 Views
B
boon Themenstarter:in
9 Beiträge seit 2011
vor 12 Jahren
Computernamen ermitteln? Tricky?!

Hallo zusammen,

ich stehe gerade vor einem kleinen Problem und komme mit "Dns.GetHostEntry()" usw. nicht zum gewünschten Erfolg.
Vielleicht habt ihr ja den Geistesblitz der mir hier fehlt.

Hintergrundinformationen:

2 Server
Server1 hat den Computernamen ServerA.
Server2 hat den Computernamen ServerB.
Beide Server haben jeweils 2 Netzwerkkarten.
Eine der Netzwerkkarten ist für den Wartungszugang und die zweite für den Produktivzugang.
Die Netzwerkkarte für den Produktivzugang ist immer nur auf einem Server aktiv.

DNS Auflösung:
ServerA: 192.168.1.50
ServerB: 192.168.1.51
Produktivzugang: 192.168.1.60

Mein Programm soll nun den Computernamen ermitteln vom Produktivserver.
"Dns.GetHostEntry(192.168.1.60)" liefert mir jedoch nur "Produktivzugang" zurück.
Egal was ich bis jetzt probiert habe bekomme ich immer nur "Produktivzugang" zurück.
Ich benötige jedoch "ServerA" oder "ServerB".

Sorry, falls ich mich nicht verständlich genug ausgedrückt habe. Im Notfall einfach nochmal nachfragen.

Vielen Dank.

P
157 Beiträge seit 2010
vor 12 Jahren

Ist der Dns-Name von 192.168.1.60 denn nicht Produktivzugang?
Der Dns name von 192.168.1.50 ist doch ServerA, oder missverstehe ich da was?

B
boon Themenstarter:in
9 Beiträge seit 2011
vor 12 Jahren

Hallo, wenn ich mir den DNS Namen per "Dns.GetHostEntry(192.168.1.60)" auslese, bekomme ich "Produktivzugang"

Angenommen.
Server1 ist aktuell Produktiv.
Dh. Server1 ist über ServerA(192.168.1.50) und Produktivsystem(192.168.1.60) erreichbar.
Server2 ist nur über ServerB(192.168.1.51) erreichbar, da sein Produktivzugang deaktiviert ist.

Mein Progamm kann aber nicht wissen, welcher der beiden Server aktuell das Produktivsystem ist.
Was ich 100%ig weiss, ist das 192.168.1.60 produktiv ist.
Nur bekomme ich halt hier auch nur "Produktivsystem" zurückgemeldet.

Ich benötige also einen weg über die 192.168.1.60 an ServerA zu kommen... 😁

B
boon Themenstarter:in
9 Beiträge seit 2011
vor 12 Jahren

Möglich müsste es sein, da
ntbstat -a 192.168.1.60
ServerA zurückliefert.
Sollte doch aber auch komfortabler per C# zu lösen sein als ein shellcommand aufrufen zu müssen... oder? 8)

P
157 Beiträge seit 2010
vor 12 Jahren

Fürst du ntbstat auf dem Server aus oder einem Client?

B
boon Themenstarter:in
9 Beiträge seit 2011
vor 12 Jahren

auf dem Client

Bin auch schon am überlegen nbstat zu nutzen, und dann im Rückgabewert nach den beiden ServerA bzw. B zu suchen. Und je nachdem was ich finde kann ich weitermachen.
Wär nur schön, wenn das ohne solche Konstrukte mit externen Programmen funktioniert.

P
157 Beiträge seit 2010
vor 12 Jahren

Was sagen den die HostEntry Properties?

B
boon Themenstarter:in
9 Beiträge seit 2011
vor 12 Jahren
IPHostEntry hostEintrag = Dns.GetHostEntry(192.168.1.60);
            label1.Text = Convert.ToString(hostEintrag.HostName);

liefert "Produktivsystem"

oder was meinst du?

Grüße

P
157 Beiträge seit 2010
vor 12 Jahren

Über DNS wird es wohl nicht gehen, da ServerA ja nicht der Domain-Name der IP-Adresse ist. Google mal NetBios, damit scheint nbtstat ja zu laufen. Anscheinend bekommt man darüber den Namen.

B
boon Themenstarter:in
9 Beiträge seit 2011
vor 12 Jahren

Das habe ich schon befürchtet.
Schade, aber danke für deine Hilfe.

Bin gerade schon am versuchen per System.Diagnostics.Process
nbtstat -a 192.168.1.60 aufzurufen.
Nur stehe ich gerade auf dem Schlauch den Rückgabewert mit einem String zu vergleichen.

Rückgabewert enthält korrekt den Computernamen "ServerA" leider einige male 😉

Hat mir jemand eventuell ein script-schnipsel, der nbstat aufruft und den Rückgabewert auf "ServerA" prüft?

Wär echt klasse... Grüße

C:\Documents and Settings\boon\Desktop>nbtstat -a 192.168.1.60

LAN-Verbindung 4:
Knoten-IP-Adresse: [192.168.10.25] Bereichskennung: []

Host nicht gefunden.  

Network Connect Adapter:
Knoten-IP-Adresse: [192.168.1.19] Bereichskennung: []

  NetBIOS-Namentabelle des Remotecomputers  

   Name               Typ          Status  
---------------------------------------------  
ServerA     <00>  EINDEUTIG   Registriert  
DOMAIN           <00>  GRUPPE      Registriert  
ServerA     <20>  EINDEUTIG   Registriert  
ServerA     <01>  EINDEUTIG   Registriert  
ServerA     <03>  EINDEUTIG   Registriert  

MAC Adresse = 00-00-00-00-00-00  

P
157 Beiträge seit 2010
vor 12 Jahren

Den Rückgabestream musst du Umlenken und auslesen. Dann durchsucht du den Rückgabestream nach ServerA oder ServerB, da vermutlich nicht ServerA und ServerB auftaucht.

D
14 Beiträge seit 2010
vor 12 Jahren

Hi boon,

setz doch auf beide Server einen simplen TCP-Server als Dienst, die Dir auf Anfrage den Servernamen zurückliefern. Ggf. die Anfrage auch auf die IP "Produktivsystem" beschränken.
DNS kann Dir da nicht helfen. Es liefert Dir was eingetragen ist.

Gruß Dani

D
216 Beiträge seit 2009
vor 12 Jahren

Guck dir einfach die MAC Adresse hinter 192.168.1.60 an, ob diese zum ServerA oder ServerB gehört (gesetzt dem Fall, dass diese nicht 00-00-00-00-00-00 ist, wie nbtstat anzeigt).

Darthmaim