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.
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?
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... 😁
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)
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.
IPHostEntry hostEintrag = Dns.GetHostEntry(192.168.1.60);
label1.Text = Convert.ToString(hostEintrag.HostName);
liefert "Produktivsystem"
oder was meinst du?
Grüße
Ü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.
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?
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
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.
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
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