iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >怎么在c# 中对网络信息进行设置
  • 142
分享到

怎么在c# 中对网络信息进行设置

2023-06-14 06:06:35 142人浏览 安东尼
摘要

怎么在C# 中对网络信息进行设置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1).IP地址  /// <summary> 

怎么在C# 中对网络信息进行设置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

(1).IP地址

  /// <summary>  /// IP地址  /// </summary>  public string IpAddress  {   get   {    string ipAddress;    var address = GetAddress();    if (address == null)    {     ipAddress = string.Empty;    }    else    {     ipAddress = address.Address.ToString();    }    return ipAddress;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(2).网关地址

  /// <summary>  /// 网关地址  /// </summary>  public string Getway  {   get   {        string getway;    if (Getwaryes != null && Getwaryes.Count > 0)    {     getway = Getwaryes[0].Address.ToString() == "0.0.0.0" ? "" : Getwaryes[0].Address.ToString();     }    else    {     getway =string.Empty;    }    return getway;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(3). DHCP服务器地址

  /// <summary>  /// DHCP服务器地址  /// </summary>  public string DhcpServer  {   get   {    string dhcpServer;    if (DhcpServerAddresses != null && DhcpServerAddresses.Count > 0)    {     dhcpServer = DhcpServerAddresses[0].ToString();    }    else    {     dhcpServer = string.Empty;    }    return dhcpServer;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(4).Mac地址

  /// <summary>  /// MAC地址  /// </summary>  public string MacAddres  {   get   {    string macAddress;    if (MacAddress == null)     macAddress = string.Empty;    else if (MacAddress.ToString().Length == 12)    {     macAddress = MacAddress.ToString().Insert(4, "-").Insert(9, "-");    }    else    {     macAddress = MacAddress.ToString();    }    return macAddress;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(5). 主DNS地址

  /// <summary>  /// 主DNS地址  /// </summary>  public string DnsMain  {   get   {    var dnsMain =string.Empty;    if (DnsAddresses.Count > 0)    {     if (IsIPAddress(DnsAddresses[0].ToString()))     {      dnsMain = DnsAddresses[0].ToString();     }    }    else    {     dnsMain =string.Empty;    }    return dnsMain;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(6).备用DNS地址

  /// <summary>  /// 备用DNS地址  /// </summary>  public string DnsBackup  {   get   {    var dnsBackup = string.Empty;    if (DnsAddresses.Count > 1)    {     if (IsIPAddress(DnsAddresses[1].ToString()))     {      dnsBackup = DnsAddresses[1].ToString();     }    }    else    {     dnsBackup = string.Empty;    }    return dnsBackup;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(7).子网掩码

  /// <summary>  /// 子网掩码  /// </summary>  public string Mask  {   get   {    string mask;    var address = GetAddress();    if (address == null)    {     mask = "";    }    else    {     if (address.IPv4Mask != null)      {      mask = address.IPv4Mask.ToString();     }     else     {      mask = "255.255.255.0";     }         }    return mask;   }   set { if (value == null) throw new ArgumentNullException(nameof(value)); }  }

(8).属性

  /// <summary>  /// DNS集合  /// </summary>  public IPAddressCollection DnsAddresses { get; set; }  /// <summary>  /// 网关地址集合  /// </summary>  public GatewayIPAddressInfORMationCollection Getwaryes { get; set; }  /// <summary>  /// IP地址集合  /// </summary>  public UnicastIPAddressInformationCollection IpAddresses { get; set; }  /// <summary>  /// DHCP地址集合  /// </summary>  public IPAddressCollection DhcpServerAddresses { get; set; }  /// <summary>  /// 网卡MAC地址  /// </summary>  public PhysicalAddress MacAddress { get; set; }  /// <summary>  /// 是否启用DHCP服务  /// </summary>  public bool IsDhcpEnabled { get; set; }  /// <summary>  /// 描述信息  /// </summary>  public string Description { get; set; }  /// <summary>  /// 网络接口类型  /// </summary>  /// <returns></returns>  public string NetworkInterfaceType { get; set; }  /// <summary>  /// 速度  /// </summary>  public string Speed { get; set; }

(9).是否是IP地址

  /// <summary>  /// 是否是IP地址  /// </summary>  /// <param name="ipAddress"></param>  /// <returns></returns>  public bool IsIPAddress(string ipAddress)  {   const string regexStr = @"^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$";   var regex = System.Text.RegularExpressions.Regex.Match(ipAddress, regexStr);   return regex.Success;  }

(10).启用DHCP服务

  /// <summary>  /// 启用DHCP服务  /// </summary>  public bool EnableDhcp()  {   var wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");   var moc = wmi.GetInstances();   foreach (var o in moc)   {    var mo = (ManagementObject) o;    if (!(bool)mo["IPEnabled"])     continue;    if (mo["SettingID"].ToString() != NetworkInterfaceId) continue;    mo.InvokeMethod("SetDNSServerSearchOrder", null);    mo.InvokeMethod("EnableDHCP", null);   }   //查询现适配器接口信息   var networkAdapter = new NetworkAdapterUtil().GetNeworkAdapterByNetworkInterfaceId(NetworkInterfaceId);    return networkAdapter != null && networkAdapter.IsDhcpEnabled;  }

(11).设置IP地址,子网掩码,网关,DNS

  /// <summary>  /// 设置IP地址,子网掩码,网关,DNS,  /// </summary>  public bool SetIpAddressSubMaskDnsGetway(string ipAddress, string subMask, string getWay, string dnsMain, string dnsBackup)  {   string[] dnsArray;   if (string.IsNullOrEmpty(dnsBackup))   {    dnsArray = new[] { dnsMain };   }   else   {    dnsArray = new[] { dnsMain, dnsBackup };   }   return SetIpAddress(new[] { ipAddress }, new[] { subMask }, new[] { getWay }, dnsArray);  }  /// <summary>  /// 设置IP地址和子网掩码  /// </summary>  public bool SetIpAddressAndSubMask(string ipAddress, string subMask)  {   return SetIpAddress(new[] { ipAddress }, new[] { subMask }, null, null);  }  /// <summary>  /// 设置IP网关  /// </summary>  public bool SetGetWayAddress(string getWay)  {   return SetIpAddress(null, null, new[] { getWay }, null);  }

(12).设置主,备份DNS地址

  /// <summary>  /// 设置主,备份DNS地址  /// </summary>  public bool SetDnsAddress(string dnsMain, string dnsBackup)  {   string[] dnsArray;   if (string.IsNullOrEmpty(dnsBackup))   {    dnsArray = new[] { dnsMain };   }   else   {    dnsArray = new[] { dnsMain, dnsBackup };   }   return SetIpAddress(null, null, null, dnsArray);  }

(13).得到IPV4地址

  /// <summary>  /// 得到IPV4地址  /// </summary>  /// <returns></returns>  private UnicastIPAddressInformation GetAddress()  {   if (IpAddresses == null || IpAddresses.Count <= 0) return null;   switch (IpAddresses.Count)   {    case 3:     return IpAddresses[2];    case 2:     return IpAddresses[1];   }   return IpAddresses[0];  }

(14).检查设置IP地址,如果返回空,表示检查通过,为了方便返回就字符串

  /// <summary>  /// 检查设置IP地址,如果返回空,表示检查通过,为了方便返回就字符串了,没用枚举了  /// </summary>  /// <param name="ipAddress"></param>  /// <param name="subMask"></param>  /// <param name="getWay"></param>  /// <param name="dnsMain"></param>  /// <param name="dnsBackup"></param>  /// <returns></returns>  public string IsIPAddress(string ipAddress, string subMask, string getWay, string dnsMain, string dnsBackup)  {   if (!string.IsNullOrEmpty(ipAddress))   {    if (!IsIPAddress(ipAddress)) return "IP地址格式不对";   }   if (!string.IsNullOrEmpty(subMask))   {    if (!IsIPAddress(subMask)) return "子网掩码格式不对";   }   if (!string.IsNullOrEmpty(getWay))   {    if (!IsIPAddress(getWay)) return "网关地址格式不对";   }   if (!string.IsNullOrEmpty(dnsMain))   {    if (!IsIPAddress(dnsMain)) return "主DNS地址格式不对";   }   if (string.IsNullOrEmpty(dnsBackup)) return "";   return !IsIPAddress(dnsBackup) ? "备用DNS地址格式不对" : "";  }

(15).设置IP地址

  /// <summary>  /// 设置IP地址  /// </summary>  /// <param name="ip"></param>  /// <param name="submask"></param>  /// <param name="getway"></param>  /// <param name="dns"></param>  private bool SetIpAddress(IEnumerable ip, IEnumerable submask, IEnumerable getway, IEnumerable dns)  {   var wmi = new ManagementClass("Win32_NetworkAdapterConfiguration");   var moc = wmi.GetInstances();   foreach (var o in moc)   {    var mo = (ManagementObject) o;    if (!(bool)mo["IPEnabled"])     continue;    if (NetworkInterfaceId != mo["SettingID"].ToString()) continue;    ManagementBaseObject inPar;    ManagementBaseObject outPar;    string str = null;    if (ip != null && submask != null)    {     inPar = mo.GetMethodParameters("EnableStatic");     inPar["IPAddress"] = ip;     inPar["SubnetMask"] = submask;     outPar = mo.InvokeMethod("EnableStatic", inPar, null);     if (outPar != null) str = outPar["returnvalue"].ToString();     return (str=="0"||str=="1");     //获取操作设置IP的返回值, 可根据返回值去确认IP是否设置成功。 0或1表示成功    }    if(getway!=null)    {     inPar = mo.GetMethodParameters("SetGateways");     inPar["DefaultIPGateway"] = getway;     outPar = mo.InvokeMethod("SetGateways", inPar, null);     if (outPar != null) str = outPar["returnvalue"].ToString();     return (str == "0" || str == "1");    }    if (dns == null) continue;    inPar = mo.GetMethodParameters("SetDNSServerSearchOrder");    inPar["DNSServerSearchOrder"] = dns;    outPar = mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null);    if (outPar != null) str = outPar["returnvalue"].ToString();    return (str == "0" || str == "1");   }   return false;  }

看完上述内容,你们掌握怎么在c# 中对网络信息进行设置的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网精选频道,感谢各位的阅读!

--结束END--

本文标题: 怎么在c# 中对网络信息进行设置

本文链接: https://www.lsjlt.com/news/268629.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么在c# 中对网络信息进行设置
    怎么在c# 中对网络信息进行设置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。(1).IP地址  /// <summary> ...
    99+
    2023-06-14
  • c# 如何对网络信息进行相关设置(ip,dns,网关等)
         网络的相关设置在项目开发中有较多的应用,有时候需要在项目中对网络信息进行相关设置。      现在提供提供几种相...
    99+
    2022-11-11
  • 怎么在linux命令行中对网络进行配置
    这篇文章将为大家详细讲解有关怎么在linux命令行中对网络进行配置,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。除了通用的ifconfig外,对于Redhat/Fedora发行版,有专用的配...
    99+
    2023-06-10
  • 怎么在centos系统中对网络进行配置
    今天就跟大家聊聊有关怎么在centos系统中对网络进行配置,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一,修改文件来设置网络连接1,自动获取IP的方法自动获取根4个文件有关系a),...
    99+
    2023-06-10
  • 怎么在 IDEA中对build path进行设置
    本篇文章给大家分享的是有关怎么在 IDEA中对build path进行设置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。打开IDEA–>File–>Project ...
    99+
    2023-06-14
  • 怎么在Google Chrome中手动设置位置信息
    这篇文章给大家分享的是有关怎么在Google Chrome中手动设置位置信息的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。大家都知道,手机可以使用内置的 GPS、北斗、GLONASS 或网络三角测量等多种方式为应...
    99+
    2023-06-16
  • 在Java中怎么利用代理对网络进行连接
    在Java中怎么利用代理对网络进行连接?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。需求是这样的:一、界面上要有这样几种代理类型可以选。HTTP代理 Socks...
    99+
    2023-05-31
    java ava
  • 怎么在VMware中设置NAT网络连接
    这篇文章将为大家详细讲解有关怎么在VMware中设置NAT网络连接,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Centos 6的Minimal下,网卡默认onboot="no&q...
    99+
    2023-06-07
  • 在Golang中怎么进行网络请求
    这篇文章主要介绍“在Golang中怎么进行网络请求”,在日常操作中,相信很多人在在Golang中怎么进行网络请求问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”在Golang中怎么进行网络请求”的疑惑有所帮助!...
    99+
    2023-07-05
  • 怎么在python中中对信号进行处理
    今天就跟大家聊聊有关怎么在python中中对信号进行处理,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。python可以做什么Python是一种编程语言,内置了许多有效的工具,Pyth...
    99+
    2023-06-14
  • 怎么在Java中对DBeaver进行配置
    本篇文章为大家展示了怎么在Java中对DBeaver进行配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、JDK环境配置这里演示的是win7系统下JDK是jdk-6u43-windows-i58...
    99+
    2023-06-14
  • 怎么在MyBatis中对properties进行配置
    本篇文章为大家展示了怎么在MyBatis中对properties进行配置,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,...
    99+
    2023-05-30
    mybatis properties
  • Oracle GoldenGate进程中怎么配置Manager和网络通信
    本篇内容介绍了“Oracle GoldenGate进程中怎么配置Manager和网络通信”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望...
    99+
    2022-10-18
  • 怎么在Spring MVC中利用ajax进行信息验证
    本篇文章为大家展示了怎么在Spring MVC中利用ajax进行信息验证,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。主要的方法有两种:var xmlhttp=new XMLHt...
    99+
    2023-06-08
  • 怎么在C++二进制文件中注入git信息详解
    在后端生产环境中,为了方便定位问题,我们需要根据一个binary文件获取其对应的git信息,包括编译出该binary所用的代码分支、commitid、时间戳、commit messa...
    99+
    2022-11-12
  • 怎么在Golang中进行多核设置
    这篇文章主要介绍“怎么在Golang中进行多核设置”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么在Golang中进行多核设置”文章能帮助大家解决问题。一、什么是多核设置?多核设置(或多处理器设置...
    99+
    2023-07-06
  • Android应用中怎么对全屏进行设置
    Android应用中怎么对全屏进行设置?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。第一种方式:在protected void onCreate(Bundle ...
    99+
    2023-05-31
    android roi
  • 怎么在Go中进行切片的设置
    这篇“怎么在Go中进行切片的设置”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么在Go中进行切片的设置”文章吧。一、创建一...
    99+
    2023-07-05
  • Android应用中怎么对状态栏进行设置
    Android应用中怎么对状态栏进行设置?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Android 状态栏的设置适配问题详解最近看了很多关于状态栏的问题的处理,总结出处理状态...
    99+
    2023-05-31
    android roi
  • 怎么在Windows环境中对Maven进行配置
    本篇文章给大家分享的是有关怎么在Windows环境中对Maven进行配置,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Maven在Windows下的配置下载Maven解压到D盘...
    99+
    2023-05-31
    maven windows 中对
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作