private NodeStatusResponse SendNodeStatusRequest(NodeStatusRequest request) { UdpClient client = new UdpClient(); IPEndPoint serverEndPoint = new IPEndPoint(m_serverAddress, NetBiosNameServicePort); client.Connect(serverEndPoint); byte[] requestBytes = request.GetBytes(); client.Send(requestBytes, requestBytes.Length); byte[] responseBytes = client.Receive(ref serverEndPoint); return(new NodeStatusResponse(responseBytes, 0)); }
public string?GetServerName() { NodeStatusRequest request = new NodeStatusRequest { Header = { QDCount = 1 }, Question = { Name = "*".PadRight(16, '\0') } }; NodeStatusResponse response = SendNodeStatusRequest(request); return((from entry in response.Names let suffix = NetBiosUtils.GetSuffixFromMSNetBiosName(entry.Key) where suffix == NetBiosSuffix.FileServiceService select entry.Key).FirstOrDefault()); }
public string GetServerName() { NodeStatusRequest request = new NodeStatusRequest(); request.Header.QDCount = 1; request.Question.Name = "*".PadRight(16, '\0'); NodeStatusResponse response = SendNodeStatusRequest(request); foreach (KeyValuePair <string, NameFlags> entry in response.Names) { NetBiosSuffix suffix = NetBiosUtils.GetSuffixFromMSNetBiosName(entry.Key); if (suffix == NetBiosSuffix.FileServiceService) { return(entry.Key); } } return(null); }