Buongiorno. Da tempo utilizzo un algoritmo che controlla (blandamente) la validità della licenza di un'applicazione in rete locale, basandosi sul nome del server. Tale nome è ottenuto con l'uso della classe ManagementObject …
Dim driveLetter As String = IO.Path.GetPathRoot(filePath).Replace("\", "")
Dim query As New ObjectQuery("select * from Win32_LogicalDisk")
Using searcher As New ManagementObjectSearcher(query)
For Each mo As ManagementObject In searcher.Get()
If driveLetter = mo("Caption").ToString Then
If mo("DriveType") = DriveType.Network Then
serverName = mo("ProviderName").ToString
serverName = serverName.Replace("\\", "")
serverName = serverName.Substring(0, serverName.IndexOf("\"))
Else
serverName = Dns.GetHostName
End If
Exit For
End If
Next
End Using
… e la cosa funziona abbastanza. In un caso però, su alcuni client ottengo un nome diverso da quello reale del server ed ho il sospetto (che però non posso verificare de visu) che siano client collegati alla rete locale tramite un access point. La domanda: è possibile che il codice di cui sopra restituisca il nome dell' access point, ammesso che questo ne abbia uno?
Grazie.