IP地址的修改 C#

比如把一个string 192.168.255.34
这个地址改为string 192.168.255.1
这个地址 要怎么修改

  IP地址的修改方法
方法一:

  1、在 “解决方案资源管理器” 右击 “引用” 添加 “System.Management” 的引用。
2、添加 “using System.Management;”。

static void SetNetworkAdapter()
{
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
if (!(bool)mo["IPEnabled"])
continue;

//设置ip地址和子网掩码

inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = new string[] { "192.168.16.248", "192.168.16.249" };// 1.备用 2.IP
inPar["SubnetMask"] = new string[] { "255.255.255.0", "255.255.255.0" };
outPar = mo.InvokeMethod("EnableStatic", inPar, null);

//设置网关地址

inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = new string[] { "192.168.16.2", "192.168.16.254" }; // 1.网关;2.备用网关
outPar = mo.InvokeMethod("SetGateways", inPar, null);

//设置DNS

inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = new string[] { "211.97.168.129", "202.102.152.3" }; // 1.DNS 2.备用DNS
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
break;
}
}

方法二:

  using System;
using System.Collections;
using System.Text;
using System.Management;
using System.Text.RegularExpressions;
namespace Kingthy.Windows.IPChanger.Providers
{
/// <summary>
/// IPProvider 的摘要说明。
/// </summary>
public class IPProvider
{
public IPProvider()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
/// <summary>
/// 设置DNS
/// </summary>
/// <param name="dns"></param>
public static void SetDNS(string[] dns)
{
SetIPAddress(null, null, null, dns);
}
/// <summary>
/// 设置网关
/// </summary>
/// <param name="getway"></param>
public static void SetGetWay(string getway)
{
SetIPAddress(null, null, new string[] { getway }, null);
}
/// <summary>
/// 设置网关
/// </summary>
/// <param name="getway"></param>
public static void SetGetWay(string[] getway)
{
SetIPAddress(null, null, getway, null);
}
/// <summary>
/// 设置IP地址和掩码
/// </summary>
/// <param name="ip"></param>
/// <param name="submask"></param>
public static void SetIPAddress(string ip, string submask)
{
SetIPAddress(new string[] { ip }, new string[] { submask }, null, null);
}
/// <summary>
/// 设置IP地址,掩码和网关
/// </summary>
/// <param name="ip"></param>
/// <param name="submask"></param>
/// <param name="getway"></param>
public static void SetIPAddress(string ip, string submask, string getway)
{
SetIPAddress(new string[] { ip }, new string[] { submask }, new string[] { getway }, null);
}
/// <summary>
/// 设置IP地址,掩码,网关和DNS
/// </summary>
/// <param name="ip"></param>
/// <param name="submask"></param>
/// <param name="getway"></param>
/// <param name="dns"></param>
public static void SetIPAddress(string[] ip, string[] submask, string[] getway, string[] dns)
{
ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = wmi.GetInstances();
ManagementBaseObject inPar = null;
ManagementBaseObject outPar = null;
foreach (ManagementObject mo in moc)
{
//如果没有启用IP设置的网络设备则跳过
if (!(bool)mo["IPEnabled"])
continue;
//设置IP地址和掩码
if (ip != null && submask != null)
{
inPar = mo.GetMethodParameters("EnableStatic");
inPar["IPAddress"] = ip;
inPar["SubnetMask"] = submask;
outPar = mo.InvokeMethod("EnableStatic", inPar, null);
}
//设置网关地址
if (getway != null)
{
inPar = mo.GetMethodParameters("SetGateways");
inPar["DefaultIPGateway"] = getway;
outPar = mo.InvokeMethod("SetGateways", inPar, null);
}
//设置DNS地址
if (dns != null)
{
inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");
inPar["DNSServerSearchOrder"] = dns;
outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);
}
}
}
/// <summary>
/// 启用DHCP服务器
/// </summary>
public static void EnableDHCP()
{
ManagementClass wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");
ManagementObjectCollection moc = wmi.GetInstances();
foreach (ManagementObject mo in moc)
{
//如果没有启用IP设置的网络设备则跳过
if (!(bool)mo["IPEnabled"])
continue;
//重置DNS为空
mo.InvokeMethod("SetDNSServerSearchOrder", null);
//开启DHCP
mo.InvokeMethod("EnableDHCP", null);
}
}
/// <summary>
/// 判断是否IP地址格式
/// </summary>
/// <param name="ip"></param>
/// <returns></returns>
public static bool IsIPAddress(string ip)
{
string[] arr = ip.Split('.');
if (arr.Length != 4)
return false;
string pattern = @"/d{1,3}";
for (int i = 0; i < arr.Length; i++)
{
string d = arr[i];
if (i == 0 && d == "0")
return false;
if (!Regex.IsMatch(d, pattern))
return false;
if (d != "0")
{
d = d.TrimStart('0');
if (d == "")
return false;
if (int.Parse(d) > 255)
return false;
}
}
return true;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-08-30
string ss = "192.168.55.34";
int i=ss.LastIndexOf('.');
string ss1 = ss.Substring(0, i)+".1";
这种对你只变更C类地址有效,如果变更前3节这个办法就不行,
最通用的办法还是把4段地址都取出来,根据需要变更,然后在组合在一起,
char[] sp = new char[]{'.'}; //可以有多个分割符
string[] words = sp.split(sp);
words[0] 里面就是192 ,...........
你要看着不爽,可以写成函数形式, ipaddress(Sip,index,num)
Sip原地址字符串,index表示段0-3,num值目标段替换值, 返回一个新Ip,里面可以包含ip合法性检验等等,你说的可以是 ipaddress("192.168.255.34",3,"1")本回答被提问者和网友采纳
第2个回答  2012-02-29
网上邻居属性,本地连接属性,internet协议属性就可以改。追问

不是,我就是吧一个IP地址 比如192.168.255.34 变成192.168.255.1 然后测试是否这个地址是通的,并不是获取到一个IP地址

第3个回答  2012-02-29
string aaa="192.168.255.34";
aaa=spilt(".");
aaa[0]="192";
aaa[1]="168";
aaa[2]="225";
aaa[3]="1";
string bbb=aaa[0]+"."+aaa[1]+"."+aaa[2]+"."aaa[3];追问

这个方法暂时保留吧,虽然我现在也是这么写的,但是感觉不好。。

第4个回答  2020-06-27
第一步:安装:兔子转换器转换器(下载手机版)
第二步:注册免费账号
第三步:连接你要修改的城市节点
第四步:打开浏览器查询转换器是你修改之后的转换器
就可以解决你的问题了。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网