以C#编程方式获取无线域名

本文关键字:域名 获取 方式 编程 | 更新日期: 2023-09-27 18:25:47

我正在尝试在代理身份验证背后的网络下发送HttpWebRequest

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Method = "POST";
req.Proxy = new WebProxy("192.168.0.2", 8080);
req.UserAgent = "Mozilla/5.0";
req.Proxy.Credentials =new NetworkCredential("username","password","DOMAINNAME");
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
StreamReader sr = new StreamReader(resp.GetResponseStream());

现在我想获取我连接到的无线网络的DOMAINNAME。那么,如何获取用192.168.0.2主机名指定的无线网络域名呢?

感谢您的预付款:)

以C#编程方式获取无线域名

查看Win32_NetworkAdapterConfiguration管理类,它公开DNSDomain属性,这可能是您想要的。检查访问ManagementClass对象的类的System.Management命名空间。

例如,这个片段将为您提供一个对象集合,当前计算机上的每个网络适配器都有一个对象,并打印其DNS域属性。

var mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
foreach (var networkAdapter in mc.GetInstances())
{
    Console.WriteLine(networkAdapter.Properties["DNSDomain"].Value);
}

您想要做的事情是行不通的。您要查找的域名是凭据的一部分,该凭据将用于通过身份验证代理。因此,你需要从获得用户名和密码的同一个地方获得它(即可能是由用户输入的)。从无线网络(甚至机器)获取域并不能保证它与正在使用的用户所属的域匹配。

例如:

Contoso有限公司有一个名为Contoso.local的域(其W2k别名为Contoso
他们的用户以CONTOSO''bob.smith的身份登录到域。
他们的无线网络SSID是ContosoLtd

用于代理凭据的正确域名是CONTOSO

当您要求使用用户名和密码作为凭据时,也要询问域名。