首页 / C# / 在C#中更改网络配置
在C#中更改网络配置
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在C#中更改网络配置,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2253字,纯文字阅读大概需要4分钟。
内容图文
我正在尝试制作一个简单的程序来改变C#中的IP参数.
我用这个代码:How can you change Network settings (IP Address, DNS, WINS, Host Name) with code in C#
执行它,并制作我自己的方法:
public void changerip(string adresse, string NIC)
{
ManagementObjectCollection objMOC = objMC.GetInstances();
foreach (ManagementObject objMO in objMOC)
{
if (objMO["Caption"].Equals(NIC))
{
try
{
if (adresse != "0")
{
ManagementBaseObject setIP;
ManagementBaseObject newIP =
objMC.GetMethodParameters("EnableStatic");
newIP["IPAddress"] = new string[] { "192.168." + adresse + ".50" };
newIP["SubnetMask"] = new string[] { "255.255.255.0" };
setIP = objMO.InvokeMethod("EnableStatic", newIP, null);
ManagementBaseObject setGateway;
ManagementBaseObject newGateway =
objMO.GetMethodParameters("SetGateways");
newGateway["DefaultIPGateway"] = new string[] { "192.168." + adresse + ".254" };
newGateway["GatewayCostMetric"] = new int[] { 1 };
setGateway = objMO.InvokeMethod("SetGateways", newGateway, null);
ManagementBaseObject newDNS =
objMO.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = "192.168.1.24,192.168.1.2".Split(',');
ManagementBaseObject setDNS =
objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
}
else
{
ManagementBaseObject newDNS = objMO.GetMethodParameters("SetDNSServerSearchOrder");
newDNS["DNSServerSearchOrder"] = null;
ManagementBaseObject enableDHCP = objMO.InvokeMethod("EnableDHCP", null, null);
ManagementBaseObject setDNS = objMO.InvokeMethod("SetDNSServerSearchOrder", newDNS, null);
//Save all Gateways into an array
string[] gateways = (string[])objMO["DefaultIPGateway"];
ManagementBaseObject newIP = objMO.GetMethodParameters("EnableStatic");
ManagementBaseObject newGate = objMO.GetMethodParameters("SetGateways");
//Set last value of the array(always the Gateway recived by DHCP) as the default Gateway
newGate["DefaultIPGateway"] = new string[] { gateways[gateways.Length - 1] };
newGate["GatewayCostMetric"] = new int[] { 1 };
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message);
}
}
}
}
它在Windows XP中运行良好,但在Windows 7(Starter或Pro)上不起作用.我没有任何异常上升,也没有来自操作系统的错误/安全消息.
有人知道发生了什么?
解决方法:
看起来像我的凭据问题.您应该使用管理权限运行该程序.您可以通过简单的右键单击exe并单击“以管理员身份运行”来完成.
内容总结
以上是互联网集市为您收集整理的在C#中更改网络配置全部内容,希望文章能够帮你解决在C#中更改网络配置所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。