Namen über Netbios auflösen

  • VB.NET

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von SystemUnknow.

    Namen über Netbios auflösen

    Hi,

    Ich versuche schon eine Weile den Netbiosnamen zu einer entsprechenden IP auszulesen.
    Mir sind nbtstat und ping -a als Kommandozeilentools bekannt. Doch ich möchte dies mit VB Mitteln lösen.
    Allerdings möchte ich kein WMI benutzen.

    Hintergrund:

    VB.NET-Quellcode

    1. Dim hst As IPHostEntry = Dns.GetHostEntry(IPAdresse)
    2. Debug.print(hst.HostName)

    Dies wäre die Namensauflösung über DNS. Das funktioniert aber nicht immer.. schlägt dies fehl würde ich gerne über NEtbios/WINS den Namen auslesen.

    VB.NET-Quellcode

    1. Dim UdpNB As New Sockets.Socket(Sockets.AddressFamily.InterNetwork, Sockets.SocketType.Dgram, Sockets.ProtocolType.Udp)
    2. UDPNB.Connect(New IPEndPoint(IPList(myInd), 137)) '137 Netbios Name service


    Weiß jemand was ich für ein Paket senden muss, damit ich den Namen zurück bekomme ?

    Oder gibts einen anderen Weg an den Netbios Namen zu kommen (also nbtstat bzw ping -a selber zu schreiben)

    Danke schonmal

    Gruss Mono
    Das ist meine Signatur und sie wird wunderbar sein!
    Hallo Alex,

    leider sind beide Links keine Hilfe, bei dem einen wird Dns.GetHostname benutzt. Das benutze ich auch, nur das funktioniert nicht ohne DNS Server.
    Bzw. wenn der PC nicht am DNS registriert ist.
    Der 2. behandelt das auslesen des Netbiosnamen am Lokalen PC an dem die Anwendung ausgeführt wird.

    Was ich wissen möchte ist, wie ich den Netbios Namen eines PC im Netzwerk auslese. Ich Pinge, bekomm die erreichbaren IP's.
    Nun möchte ich diese IP über UDP (also wie NetBios) auf den Netbios Ports (137/138/139, welcher weiss ich nicht genau) ansprechen und den Namen zurück bekommen...

    Remote PC -> Netbiosname bzw Hostname auslesen OHNE WMI/DNS
    Das ist meine Signatur und sie wird wunderbar sein!