精华内容
下载资源
问答
  • usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem;usingSystem.Collections;usingSystem.Text;usingSystem.Management;usingSystem.Text.Regular...namespaceDemo{/// ///网络设置类,...

    usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem;usingSystem.Collections;usingSystem.Text;usingSystem.Management;usingSystem.Text.RegularExpressions;namespaceDemo

    {///

    ///网络设置类,设置网络的各种参数(DNS、网关、子网掩码、IP)///

    public classNetworkSetting

    {publicNetworkSetting()

    {//构造函数逻辑

    }///

    ///设置DNS///

    ///

    public static void SetDNS(string[] dns)

    {

    SetIPAddress(null, null, null, dns);

    }///

    ///设置网关///

    ///

    public static void SetGetWay(stringgetway)

    {

    SetIPAddress(null, null, new string[] { getway }, null);

    }///

    ///设置网关///

    ///

    public static void SetGetWay(string[] getway)

    {

    SetIPAddress(null, null, getway, null);

    }///

    ///设置IP地址和掩码///

    ///

    ///

    public static void SetIPAddress(string ip, stringsubmask)

    {

    SetIPAddress(new string[] { ip }, new string[] { submask }, null, null);

    }///

    ///设置IP地址,掩码和网关///

    ///

    ///

    ///

    public static void SetIPAddress(string ip, string submask, stringgetway)

    {

    SetIPAddress(new string[] { ip }, new string[] { submask }, new string[] { getway }, null);

    }///

    ///设置IP地址,掩码,网关和DNS///

    ///

    ///

    ///

    ///

    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 inmoc)

    {//如果没有启用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);

    }

    }

    }///

    ///启用DHCP服务器///

    public static voidEnableDHCP()

    {

    ManagementClass wmi= new ManagementClass("Win32_NetworkAdapterConfiguration");

    ManagementObjectCollection moc=wmi.GetInstances();foreach (ManagementObject mo inmoc)

    {//如果没有启用IP设置的网络设备则跳过

    if (!(bool) mo["IPEnabled"])continue;//重置DNS为空

    mo.InvokeMethod("SetDNSServerSearchOrder", null);//开启DHCP

    mo.InvokeMethod("EnableDHCP", null);

    }

    }///

    ///判断是否符合IP地址格式///

    ///

    ///

    public static bool IsIPAddress(stringip)

    {//将完整的IP以“.”为界限分组

    string[] arr = ip.Split('.');//判断IP是否为四组数组成

    if (arr.Length != 4)return false;//正则表达式,1~3位整数

    string pattern = @"\d{1,3}";for (int i = 0; i < arr.Length; i++)

    {string d =arr[i];//判断IP开头是否为0

    if (i == 0 && d == "0")return false;//判断IP是否是由1~3位数组成

    if (!Regex.IsMatch(d, pattern))return false;if (d != "0")

    {//判断IP的每组数是否全为0

    d = d.TrimStart('0');if (d == "")return false;//判断IP每组数是否大于255

    if (int.Parse(d) > 255)return false;

    }

    }return true;

    }

    }

    }

    展开全文
  • 1.添加 using System.Management; using System.Text.Regular...// 定义IP变量 List<string> ip = new List<string>(); List<string> subNetMask = new List<string>(); List<.


    1.添加

    using System.Management;
    using System.Text.RegularExpressions;

    2.程序主体 (可插入按钮点击事件函数中)

    // 定义IP变量
                List<string> ip = new List<string>();
                List<string> subNetMask = new List<string>();
                List<string> gateway = new List<string>();
    
                string strIp = textBox1.Text.ToString();
                string strMask = textBox2.Text.ToString();
                string strGateway = textBox3.Text.ToString();
    
    // 引用下边的IP地址验证函数
    //判断IP地址是否符合格式
                if (IsIPAddress(strIp))
                {
                    ip.Add(strIp);
                }
                else
                {
                    MessageBox.Show("IP格式错误,请重新输入。",
                                    "配置错误",
                                    MessageBoxButtons.OKCancel, MessageBoxIcon.Error);
                    
                }
                subNetMask.Add(strMask);
                gateway.Add(strGateway);
    
    //引用下边的网络适配器配置函数
    
                SetNetworkAdapter(ip, subNetMask, gateway);
            }

    3.定义 网络适配器配置函数
     

    /// <summary>
    /// 网络适配器配置
    /// </summary>
    /// <param name="ipAddr"></param>
    /// <param name="subnetMask"></param>
    /// <param name="gateways"></param>
    
            public void SetNetworkAdapter(
                                            List<string> ipAddr,
                                            List<string> subnetMask,
                                            List<string> gateways
                                         
                                          )
            {
                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"] = ipAddr.ToArray();
                    inPar["SubnetMask"] = subnetMask.ToArray();
                    outPar = mo.InvokeMethod("EnableStatic", inPar, null);
    
                    //设置网关地址
                    inPar = mo.GetMethodParameters("SetGateways");
                    inPar["DefaultIPGateway"] = gateways.ToArray();
                    outPar = mo.InvokeMethod("SetGateways", inPar, null);
    
                 
                }
            }

    4.定义 IP地址格式验证函数

    /// 函数:判断是否符合IP地址格式
            public static bool IsIPAddress(string ip)
            {
    //将完整的IP以“.”为界限分组
                string[] arr = ip.Split('.');
    
    //判断IP是否为四组数组成
                if (arr.Length != 4)
                    return false;
    
    
    //正则表达式,1~3位整数
                string pattern = @"\d{1,3}";
                for (int i = 0; i < arr.Length; i++)
                {
                    string d = arr[i];
    
    
    //判断IP开头是否为0
                    if (i == 0 && d == "0")
                        return false;
    
    
    //判断IP是否是由1~3位数组成
                    if (!Regex.IsMatch(d, pattern))
                        return false;
    
                    if (d != "0")
                    {
    //判断IP的每组数是否全为0
                        d = d.TrimStart('0');
                        if (d == "")
                            return false;
    
    //判断IP每组数是否大于255
                        if (int.Parse(d) > 255)
                            return false;
                    }
                }
                return true;
            }  


               

    展开全文
  • C#扫描IP

    2021-02-23 16:37:19
    通过Dns类获得本机IP,可能有多个,通过这个得到子网掩码,默认前24位为1 private void IPScan() { string myHostName = Dns.GetHostName(); IPAddress[] IPList = Dns.GetHostEntry(myHostName).AddressList; ...

    通过Dns类获得本机IP,可能有多个,通过这个得到子网掩码,默认前24位为1

    private void IPScan()
    {
        string myHostName = Dns.GetHostName();
        IPAddress[] IPList = Dns.GetHostEntry(myHostName).AddressList;
        this.listBox.Items.Add("HostName:"+myHostName);
        for (int i = 0; i < IPList.Length; i++)
        {
            if (IPList[i].AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork) 
            {
                this.listBox.Items.Add(IPList[i].ToString());
                PingIP(IPList[i]);
            }
        }
    }
    

    然后把此段类的IP地址通过Ping类都ping一遍,能ping通再通过SendARP获取目的主机的MAC地址

    private void PingIP(IPAddress ipa)
    {
        byte[] ipByte = ipa.GetAddressBytes();
        string ipComm = ipByte[0] + "." + ipByte[1] + "." + ipByte[2] + ".";
        string pingIP = "";
     
        for (int lastByte = 0; lastByte <= 255; lastByte++)
        {
            Ping ping = new Ping();
            ping.PingCompleted += new PingCompletedEventHandler(PingComplete);
            pingIP = ipComm + lastByte;
            ping.SendAsync(pingIP, 2000, null);
        }
    }
     
    [DllImport(@"iphlpapi.dll", ExactSpelling = true)]
    private static extern int SendARP(int DestIP, int SrcIP, [Out] byte[] pMacAddr, ref int PhyAddrLen);
    private void PingComplete(object sender, PingCompletedEventArgs e) 
    {
        if (e.Reply.Status == IPStatus.Success)
        {
            IPAddress ip = e.Reply.Address;
            this.listBox.Items.Add("IP:" + ip.ToString());
            byte[] b = new byte[6];
            int len = b.Length;
            int r = SendARP(BitConverter.ToInt32(ip.GetAddressBytes(), 0), 0, b, ref len);
            string mac = BitConverter.ToString(b, 0, 6);
            this.listBox.Items.Add("Mac:" + mac);
        }
    }
    

    如果要获取子网掩码,就需要用到命名空间System.Manaement里面的类

    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
    ManagementObjectCollection nics = mc.GetInstances();
    foreach (ManagementObject nic in nics)
    {
    if (Convert.ToBoolean(nic["ipEnabled"]) == true)
    {
    string mac = nic["MacAddress"].ToString();//Mac地址
    string ip = (nic["IPAddress"] as String[])[0];//IP地址
    string ipsubnet = (nic["IPSubnet"] as String[])[0];//子网掩码
    string ipgateway = (nic["DefaultIPGateway"] as String[])[0];//默认网关
    }
    }
    

    这种方式是或得系统进程,从进程里面读取信息
    当然,还有一种获得本机IP的方法
    更简洁

    			string hostName = Dns.GetHostName();
                IPHostEntry iPHostEntry = Dns.GetHostEntry(hostName);
                var addressV = iPHostEntry.AddressList.FirstOrDefault(q => q.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);
                strin ip = Convert.ToString(addressV);
    

    希望可用帮助你,喜欢点个赞呗

    展开全文
  • C#判断ip是否可用

    2021-11-23 21:43:39
    C#判断ip是否可用 也可以判断局域网内计算机是否开机,网络连接是否正常 使用如下的C#代码,我们可以判断局域网或者是互联网上的某台计算机,是否处于开机状态,并且,网络连接情况是否正常。 使用的原理是:通过调用PING...

    C#判断ip是否可用

    也可以判断局域网内计算机是否开机,网络连接是否正常

    使用如下的C#代码,我们可以判断局域网或者是互联网上的某台计算机,是否处于开机状态,并且,网络连接情况是否正常。

    使用的原理是:通过调用PING的方法,能PING成功的为开机、并且网络连接状态正常。否则处于网络状态不正常或关机。

    引用命名空间

    using System.Net.NetworkInformation;
    

    函数内容

    如果在static void Main(string[] args) 调用,要加static 关键字

    public bool StatusQuery(String ip = "192.168.3.121")//检查计算机是否能正常连接
    {
        bool message = false;
        Ping p = new Ping();
        try
        {
            PingReply r = p.Send(ip);
            if (r.Status == IPStatus.Success)
            {
                message = true;
            }
        }
        catch (Exception)
        {
            throw;
        }
        return message;
    }
    

    使用异常语句来处理,那么系统无法Ping通过的时候,会抛出异常,不会导致程序中断或退出

    展开全文
  • 因为开发环境需求,工作机的IP需要在192.168.1网段和192.168.3网段来回切换,遂写下切换工具 直接上代码 using Microsoft.Win32; using System.Collections.Generic; using System; using System.Text.Regular...
  • C#获取本机网络连接名,获取和设置IP地址 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; ...
  • 如今网络在我们的生活工作中所起的作用越来越大,可以说离开了网络我们就无法正常的...下面是一个很常用的C#设置系统各种网络参数的一个小Demo一起看看吧。这个Demo是通过"Win32_NetworkAdapterConfiguration"这个管...
  • C# 获取IP

    千次阅读 2021-11-25 16:04:05
    string IP = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
  • C#程序之快速切换IP地址

    万次阅读 2021-02-27 16:13:06
    在这种情况下,把笔记本带到家中和单位,总要手工设置IP,才能正常使用网络。 看了上面的内容,如果还想要继续往下看的,那么就是跟我的情况相似了。那么就Follow Me! 1.界面如下 2.需要作一下dll引用 3.名称空间...
  • C#获取电脑IP地址

    2020-12-28 22:44:48
    大佬们,我通过以下方法读取电脑网卡的IP地址,但是当读取有线网卡的IP时,会读到两个IPV4地址,这个是怎么回事?求解。。。。。。。。。。 ![在这里插入图片描述]...
  • C# IP校验和 Ping

    2021-02-02 15:42:47
    IPAddress ipAddress; string ip = txtServerIP.Text.Trim(); if (!IPAddress.TryParse(ip, out ipAddress)) { MessageBox.Show("Server ip input error!"); return; .
  • 网上有很多种方法可以获取到本地的IP地址。一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets; foreach (NetworkInterface netif in NetworkInterface....
  • C# 基于TCP 实现扫描指定ip端口

    千次阅读 2021-11-23 19:22:57
    //设置进度条最大值最小值分别为结束端口和起始端口 progressBar1.Maximum = int.Parse(endPortText.Text) - int.Parse(beginPortText.Text); progressBar1.Minimum = 0; //判断是否为继续扫描 if (port == 0) { ...
  • 最近开发一款网络安全检测工具, 有一个需求是生成两个IP段之间的所有合法IP地址, 当然方法有两种,一种就是利用纯数学原理, 比如 192.168.1.1-192.168.254.254 之间的地址,可以利用split 将IP地址分离成4个数字...
  •   由于每次Ping IP的结果不同,故程序每次运行结果可能不一样。完整代码如下: using System; using System.Collections.Generic; using System.Net; using System.Net.NetworkInformation; namespace testCodes...
  • /// 获取当前使用的IP /// </summary> /// <returns></returns> public static string GetLocalIp() { string hostname = Dns.GetHostName(); IPHostEntry localho.
  • C#中比较IP大小

    2021-06-09 14:02:54
    我要新存ip3 - Ip4 要求新存的IP段不能再之前的IP段中存在 例如旧的IPIP1为 “192.168.0.1” IP2为“192.168.0.22”; 在这期间的不允许再有IP段了 我新存一个IP起始为IP3“192.168.0.4” IP4为“192.168.0.77”这...
  • 对几个IP地址集合的定义:privateList_localAddressFamily = new List();//本机IP地址集合privateList_subNetAddressFamily = new List();//子网掩码集合privateList_defaultIPGateway = new List();// 默认网关集合...
  • //SocketList为一个Socket集合 public List<Socket> SocketList = new List<Socket>...//SocketList[i].RemoteEndPoint.ToString()为:IP地址+“:”+端口 //如 192.168.1.100:8888 ...
  • C#实现IP摄像头的方法本文实例讲述了C#实现IP摄像头的方法。分享给大家供大家参考。具体实现方法如下:#region IP摄像头代码/// /// ip摄像头代码/// //视频private IntPtr m_hChannel;private IntPtr m_hServer, ...
  • public string GetLocalIP() { IPHostEntry ipe = Dns.GetHostEntry(Dns.GetHostName()); IPAddress[] ip = ipe.AddressList; for (int i = 0; i < ip.Length; i++) { if (ip[i].Addres...
  • IP地址转换相关类 IPAddress 静态方法Parse方法将IP地址字符串转换为IPAddress实例 try{ IPAddress ip = IPAddress.Parse("143.24.20.36"); } catch{ MessageBox.Show("请输入正确的IP地址"); } 该实例的 ...
  • C#通过网络获取IP地址

    2021-03-10 11:26:28
    public static string GetHostStr(HttpRequestBase request) { var ipList = new List...IPAddress>(); var addressList = Dns.GetHostEntry(Dns.GetHostName()).AddressList; foreach (var add in addressList)
  • 手动设置本地网络的方法显然很不可取,所以我们要让程序帮我们完成,需要的朋友可以参考下如今网络在我们的生活工作中所起的作用越来越...下面是一个很常用的C#设置系统各种网络参数的一个小Demo一起看看吧。这个Dem...
  • /// <summary> /// 检查服务器和端口是否可以...param name="ipString">服务器ip</param> /// <param name="port">端口</param> /// <returns></returns> public sta...
  • 1、关闭win7 防火墙 2、修改如下如下文件。 C:\后台API接口\Test1\.vs\config\applicationhost <site name="Test1" id="2">...application path="/" applicationPool="Clr4IntegratedAppPool">...
  • c#获取服务器端ip和端口号,然后进行重定向,打开页面 //系统根目录 string path = System.AppDomain.CurrentDomain.BaseDirectory; string server_name = Request.Url.Host;//ip地址 int port_name = Request.Url....
  • C#获取客户端IP方法

    2021-02-26 14:12:14
    string ip = System.Web.HttpContext.Current.Request.ServerVariables[... if (string.IsNullOrWhiteSpace(ip)) { ip = System.Web.HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]; ; .

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 85,898
精华内容 34,359
关键字:

c#设置ip

c# 订阅