Abfrage des Namensdes Remote PCs (nbtstat)



  • Hallo zusammen,
    ich versuche ich vergeblich die Abfrage des DNS Namen des remote Computers abzufragen.
    Auf die übliche Vorgehensweise wie:

    string name = "";
    String ip = "192.168.3.201";
    name = Dns.GetHostEntry(ip).HostName;
    

    bekomme ich wieder die ip als Antwort zurück.Sollte doch der Rechnername erscheinen, oder?

    Wenn ich so versuche:

    String ip = "dc1"; //ist der Name des Rechners
    name = Dns.GetHostEntry(ip).HostName;
    

    bekomme ich den full qualified Namen zurück : dc1.dom.de (dom.de ist meine Domäne)

    Folgendes habe ich auch probiert:

    String ip = "192.168.3.201";
    IPAddress adr = IPAddress.Parse(ip);
    name = Dns.GetHostEntry(adr).HostName;
    

    gleiche Wirkung.
    Hat jemand Idee, was hier falsch ist oder wie es doch hinbekomme?

    Danke im Voraus
    Roman



  • Vielleicht hilf dies (ungetestet):

    public static void DoGetHostEntry(string hostname)
    {
        IPHostEntry host;
    
        host = Dns.GetHostEntry(hostname);
    
        Console.WriteLine("GetHostEntry({0}) returns:", hostname);
    
        foreach (IPAddress ip in host.AddressList)
        {
            Console.WriteLine("    {0}", ip);
        }
    }
    


  • Danke für den Ansatz. Leider liefert es auch nur die ip Adressen.
    Hat jemand noch ne Idee?

    Wenn so nicht klappt, werde ich tatsächlich die Erbenisse des "nbtstat -a" parsen müssen. Nicht gerade eleganter Weg.

    Hey Leute, lass mich nicht hängen und meldet euch 🙄

    Grüße



  • Hi,

    also bei mir funktioniert dein Beispiel, ich erhalte z.B. hier:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    
    namespace ConsoleApplication1 {
    
        class Program {
    
            static void Main(string[] args) {
    
                try {
                    Console.WriteLine(Dns.GetHostEntry("193.99.144.85").HostName);
                } catch(Exception e) {
                    Console.WriteLine(e.Message);
                }
            }
        }
    }
    

    den korrekten Namen von "Heise" zurück.

    193.99.144.85  =>  www.heise.de
    87.106.19.147  =>  s15222134.onlinehome-server.info (c-pusplus.de)
    127.0.0.1  =>  mein lokaler Hostname
    

    Einzig meine netzinterne IP hier wird nicht aufgelöst und schmeisst mir ne Exception.


Anmelden zum Antworten