我試圖用C 來改變/設定DNS。
我目前無法找到這方面的任何資源。
public static NetworkInterface GetActiveEthernetOrWifiNetworkInterface()
{
var Nic = NetworkInterface.GetAllNetworkInterfaces().FirstOrDefault(
a => a.OperationalStatus == OperationalStatus.Up &&
(a.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 || a.NetworkInterfaceType == NetworkInterfaceType.Ethernet) &&
a.GetIPProperties().GatewayAddresses.Any(g => g. Address.AddressFamily.ToString() == "InterNetwork"))。)
return Nic;
}
public static void SetDNS(string DnsString)
{
string[] Dns = { DnsString };
var CurrentInterface = GetActiveEthernetOrWifiNetworkInterface()。
if (CurrentInterface == null) return;
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration") 。
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
if ((bool)objMO["IPEnabled"/span>])
{
if (objMO["Description"].ToString().Equals(當前界面.描述))
{
ManagementBaseObject objdns = objMO.GetMethodParameters("SetDNSServerSearchOrder") 。
if (objdns != null)
{
objdns["DNSServerSearchOrder"] = Dns;
objMO.InvokeMethod("SetDNSServerSearchOrder"/span>, objdns, null)。
}
}
}
}
}
我從使用c#改變windows中的DNS中找到的這段c#代碼很好用。我正試圖在c 中做同樣的事情。
如果有人能提供完成這一任務的 c 代碼,我們將不勝感激。
uj5u.com熱心網友回復:
我最后做了更多的研究,并找到了對我有用的東西。 我試圖讓對域名的請求通過CloudFlare的DNS 1.1.1.1進行,因為許多ISP屏蔽了我的域名。
這是我正在使用的解決方案:
std::ofstream myfile;
myfile.open("C:WindowsSystem32driversetchosts"/span>)。
myfile << "1.1.1.1 example.com"。
myfile.close()。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/320291.html
標籤:
