- 浏览: 326543 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
request1129:
数字签名有效期过了
Asp.Net(IE) ScriptX/smsx.cab 打印控制 如何使用详细教程 -
newLinuxJava:
...
Eclipse报错:The selected JRE does not support -
pimkle:
骈阗...............
Java 获取中文的全拼英文字母及全拼首字母 -
hyw520110:
...
Eclipse报错:The selected JRE does not support -
viptmd:
数字 不能编码 ,但是能解码
Java VCF 格式解析
C# 修改IP地址,操作access
使用说明
1. 系统必须安装.NET Framework 2.0 或更高的版本 (文件:dotnetfx2.0.exe)。
2. 将压缩包解压即可使用本程序。
3. 必须在管理员权限运行。
4. 如果系统安装杀毒软件或安全卫士,会弹出修改IP的提示,请记住选择,并允许执行。
5. 修改IP地址,必须让网卡连接上网络才能修改。
使用方法:
运行软件后,先配置方案,步骤:
1.点击软件界面右上角的 【方案配置】
2.安装页面添加方案,添加成功后,点击返回。
3.方案列表中就会出现刚才添加的新方案。
4.选择一个方案,然后选择网卡(如果只有一个网卡联网,可不用选择)
5.点击 【更改 IP 地址】 按钮
6.等待更改成功。
核心源码:
Conn.cs
using System; using System.Collections.Generic; using System.Text; using System.Management; using System.Collections; using Microsoft.Win32; using System.Net.NetworkInformation; using System.Runtime.InteropServices; namespace IPSwitch { public class Conn { /// <summary> /// 新增按钮的名称 /// </summary> public const string _ADDED_NAME = "新增"; /// <summary> /// 修改按钮的名称 /// </summary> public const string _MODIFY_NAME = "编辑"; /// <summary> /// 重置按钮的名称 /// </summary> public const string _RESET_NAME = "重置"; /// <summary> /// 删除按钮的名称 /// </summary> public const string _DELETE_NAME = "删除"; /// <summary> /// 保存按钮的名称 /// </summary> public const string _SAVE_NAME = "保存"; /// <summary> /// 标题文字 /// </summary> public static string _TITLE = ""; /// <summary> /// 获取title内容 /// </summary> /// <returns></returns> public static string GetTitle() { _TITLE = DBReadAccess.GetObjectBySQL("select top 1 g_value from globals where g_name ='title'").ToString(); return _TITLE; } /// <summary> /// 实例化 Win32_NetworkAdapterConfiguration类 /// </summary> /// <returns></returns> private static ManagementObjectCollection GetMCInstances() { ManagementClass processClass = new ManagementClass("Win32_NetworkAdapterConfiguration"); return processClass.GetInstances(); } /// <summary> /// 获取当前系统中所有网卡的名称 /// </summary> /// <returns></returns> public static List<string> GetNICNameList() { List<string> list = new List<string>(); ManagementObjectCollection moc = Conn.GetMCInstances(); //获取当前系统的所有NIC foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"]) { //将当前已经启动的网卡名称加以标识 //list.Insert(0,mo.GetPropertyValue("Description").ToString()); list.Add(mo.GetPropertyValue("SettingID").ToString()); continue; } //list.Add("(不可用)"+mo.GetPropertyValue("Description").ToString()); } return GetNICNameList(list); } /// <summary> /// 获取当前可以用网卡 /// </summary> /// <returns></returns> public static int GetIPEnabledNum() { int i = 0; ManagementObjectCollection moc = Conn.GetMCInstances(); foreach (ManagementObject mo in moc) { if ((bool)mo["IPEnabled"]) { i++; } } return i; } /// <summary> /// 设置 自动获取IP /// </summary> public static void SetIpAddressAuto() { return; //ManagementObjectCollection moc = Conn.GetMCInstances(); //ManagementBaseObject inPar = null; //foreach (ManagementObject mo in moc) //{ // if (!(bool)mo["IPEnabled"]) // { // //如果网卡未启动就直接跳过 // continue; // } // //设置注册表的内容 // string sid = mo.GetPropertyValue("SettingID").ToString(); // RegistryKey rk = EditReg(sid); // if (rk != null) // { // rk.SetValue("IPAddress", "0.0.0.0"); // rk.SetValue("SubnetMask", ""); // rk.SetValue("DefaultGateway", ""); // rk.SetValue("NameServer", ""); // rk.SetValue("EnableDHCP", "dword:00000001");//自动 // //Convert.ToInt16(1); // } // //设置IP 自动获取 // mo.InvokeMethod("EnableDHCP", null, null); // //设置DNS 自动获取 // inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); // inPar["DNSServerSearchOrder"] = null; // mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); //} } /// <summary> /// 修改IP地址 /// </summary> /// <param name="nic"></param> /// <param name="ip"></param> /// <param name="mask"></param> /// <param name="way"></param> /// <param name="dns"></param> public static void SetIpAddress(string nic, string[] ip, string[] mask, string[] way, string[] dns) { nic = GetNICId(nic); ManagementObjectCollection moc = Conn.GetMCInstances(); ManagementBaseObject inPar = null; foreach (ManagementObject mo in moc) { string nicid = mo.GetPropertyValue("SettingID").ToString(); //当前网卡设置IP,其他网卡设置自动获取 if (nicid.Equals(nic)) { //IP 地址设置 if (ip != null && mask != null && way != null) { //设置IP地址 inPar = mo.GetMethodParameters("EnableStatic"); inPar["IPAddress"] = ip; inPar["SubnetMask"] = mask; mo.InvokeMethod("EnableStatic", inPar, null); //设置网关地址 inPar = mo.GetMethodParameters("SetGateways"); inPar["DefaultIPGateway"] = way; mo.InvokeMethod("SetGateways", inPar, null); //设置DNS inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); inPar["DNSServerSearchOrder"] = dns; mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); return; } } ////设置IP 自动获取 //mo.InvokeMethod("EnableDHCP", null, null); ////设置DNS 自动获取 //inPar = mo.GetMethodParameters("SetDNSServerSearchOrder"); //inPar["DNSServerSearchOrder"] = null; //mo.InvokeMethod("SetDNSServerSearchOrder", inPar, null); //设置注册表的内容 RegistryKey rk = EditReg(nicid); if (rk != null) { //rk.DeleteSubKey("DisableDhcpOnConnect"); try { rk.DeleteValue("DisableDhcpOnConnect"); } catch { } try { rk.SetValue("EnableDHCP", "1", RegistryValueKind.DWord); } catch { } try { rk.DeleteValue("NameServer"); } catch { } try { rk.SetValue("IPAddress", "0.0.0.0"); } catch { } try { rk.DeleteValue("SubnetMask"); } catch { } try { rk.DeleteValue("DefaultGateway"); } catch { } //rk.Flush(); rk.Close(); } } } /// <summary> /// 加载网卡ID /// </summary> /// <param name="names"></param> /// <returns></returns> public static string GetNICId(string nicname) { string name = null; NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in nics) { if (adapter.Name.Equals(nicname)) { name = adapter.Id; } } return name; } /// <summary> /// 加载网卡名称 /// </summary> /// <param name="names"></param> /// <returns></returns> public static List<string> GetNICNameList(List<string> names) { List<string> list = new List<string>(); NetworkInterface[] nics = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in nics) { if (names.Contains(adapter.Id)) { list.Insert(0, adapter.Name); } else { list.Add("(不可用)" + adapter.Name); } } return list; } /// <summary> /// 获取对应的注册表项 /// </summary> /// <param name="subkey"></param> /// <returns></returns> public static RegistryKey EditReg(string subkey) { try { RegistryKey rk = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\services\Tcpip\Parameters\Interfaces"); return rk.OpenSubKey(subkey,true); } catch { return null; } //本地 {4D5423C7-F885-4787-A1FA-18CB41BDEFC5} //无线 {B74AB920-C254-4FF3-9B49-2F495DD8079B} //rk.GetValue(""); //rk.SetValue("",""); } } }
DBReadAccess.cs:
using System; using System.Collections.Generic; using System.Text; using System.Data.OleDb; using System.Data; using System.Configuration; namespace IPSwitch { /// <summary> /// 处理access的类 /// </summary> public class DBReadAccess { /// <summary> /// Access 的数据库连接字符串. /// </summary> private static readonly string connString = ConfigurationManager.ConnectionStrings["DatabaseConnectionString"].ConnectionString; //@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\Database.mdb;Jet OLEDB:Database Password=switch"; private static OleDbConnection conn = null; /// <summary> /// 单例 返回连接对象 /// </summary> /// <returns></returns> private static OleDbConnection GetConn() { if (conn == null) { //connString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString(); conn = new OleDbConnection(connString);// 建立数据库连接. } return conn; } private static void isopen() { // 初始化实例 DBReadAccess.GetConn(); if (conn.State != ConnectionState.Open) { conn.Open(); } } /// <summary> /// 根据sql语句,获取datatable /// </summary> /// <param name="sql"></param> /// <returns></returns> public static DataTable GetDataTableBySQL(string sql) { isopen(); DataTable dt = new DataTable(); OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);// 创建一个适配器 adapter.Fill(dt);//绑定table adapter.Dispose(); conn.Close();// 关闭数据库连接. return dt; } /// <summary> /// 根据sql语句查询第一行第一列的值 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static object GetObjectBySQL(string sql) { isopen(); OleDbCommand cmd = conn.CreateCommand();// 创建一个 Command. cmd.CommandText = sql;// 定义需要执行的SQL语句. object obj = cmd.ExecuteScalar();//查询第一行第一列 cmd.Dispose(); conn.Close();// 关闭数据库连接. return obj; } /// <summary> /// 根据sql语句执行更新语句 /// </summary> /// <param name="sql"></param> /// <returns></returns> public static int GetExecuteBySQL(string sql) { isopen(); OleDbCommand cmd = conn.CreateCommand();// 创建一个 Command. cmd.CommandText = sql;// 定义需要执行的SQL语句. int num = cmd.ExecuteNonQuery(); cmd.Dispose(); conn.Close();// 关闭数据库连接. return num; } } }
更多的页面操作请下载附件查看源码。
- IPSwitch.rar (58.1 KB)
- 下载次数: 28
- IPSwitch_源码.rar (346.9 KB)
- 下载次数: 47
发表评论
-
C# 输出流转换成输入流操作XML
2012-02-17 10:33 5247C# 输出流转化成输入流操作XML C# C ... -
C# 输出流转换成输入流操作XML
2012-02-17 10:33 0C# 输出流转化成输入流操作XML C# Co ... -
C# 访问 .net Webservice
2012-01-17 20:35 1480C# 访问 .net Webservice 首先 ... -
C# 使用xsd文件验证XML 格式是否正确
2012-01-17 20:20 6074C# 使用xsd文件验证XML 格式是否正确 核 ... -
C# 操作Access数据文件
2011-12-23 22:24 1404C# 操作Access数据文件 using Syste ... -
C#让程序自动以管理员身份运行
2011-12-23 10:46 2504C#让程序自动以管理员身份运行 UAC来控制程序访问 ...
相关推荐
标题中的“VS2008用C#编写的IP地址修改器”表明这是一个使用Microsoft Visual Studio 2008(VS2008)开发的软件应用,编程语言为C#,其主要功能是允许用户修改计算机的IP地址。这个程序可能是一个桌面工具,能够帮助...
本主题聚焦于如何利用C#通过IP地址或计算机名获取相关网络信息,包括IP地址、MAC地址以及进行DNS查询。以下是关于这些知识点的详细说明: 1. **IP地址**: - IP(Internet Protocol)地址是网络上设备的唯一标识,...
C#作为Microsoft .NET框架的主要编程语言,提供了丰富的库和API来处理网络相关的任务,如获取局域网内设备的IP地址和MAC地址。本文将深入探讨如何使用C#实现这一功能。 首先,我们需要理解IP地址和MAC地址的概念。...
通过这个工具,你可以了解C#如何与操作系统交互,获取底层网络配置信息,这对于网络调试、监控和自动化任务非常有用。在实际应用中,这样的工具可以扩展为更复杂的网络管理解决方案,包括网络设备的监控、故障检测和...
本文将详细解析标题“IP地址, MAC地址输入控件(C#源代码)”所涉及的知识点,以及如何利用C#语言实现这样一个控件。 首先,让我们了解IP地址和MAC地址的基本概念: 1. IP地址(Internet Protocol Address):IP...
本文将详细探讨如何使用C#编程语言来读取计算机的MAC地址和IP地址。 首先,MAC地址是物理网络接口控制器(NIC,Network Interface Controller)的唯一标识,它是一个48位的二进制数,通常表示为6组由破折号分隔的12...
本教程将详细讲解如何使用C#进行IP地址的访问统计。 首先,我们需要理解IP地址的基本概念。IP地址(Internet Protocol Address)是互联网上设备的唯一标识,它由32位二进制数组成,通常以点分十进制形式表示,如192...
标题中的"IPAddr.rar"可能是一个包含C#源代码的压缩包,用于创建一个能够更改IP地址、配置为自动获取IP地址的工具。在C#中,可以使用`IPInterfaceProperties`类来获取网络接口的信息,如`GetIPProperties()`方法,...
VS2008版的C#通过局域网连接Access数据库,www.codefans.net截图所示...第一步配置数据源,先输入局域网电脑IP地址、登录名及密码,然后进入下一步,输入本机数据源用户名和密码,程序开始试图连接该机的Access数据库。
在C#编程中,获取计算机名、IP地址和MAC地址是常见的系统信息操作。这些信息在开发网络应用程序、系统管理工具或需要识别设备身份的场景中尤为重要。下面将详细介绍如何在C#中实现这些功能。 首先,让我们了解...
"Access数据中查询IP条件语句"这个主题主要涉及如何在Microsoft Access数据库中使用SQL语句来处理IP地址,尤其是进行IP地址的文本与数字之间的转换。我们将深入探讨四个关键词:IP文转数、IP数转文、inet_addr以及...
本篇文章将深入探讨如何使用C#编程语言来获取局域网内计算机的IP地址以及对应的网卡物理(MAC)地址。 首先,IP地址(Internet Protocol Address)是互联网上的每个设备独一无二的数字标识,它分为IPv4和IPv6两种...
对于每个活动接口,我们检查其IP地址是否与输入的IP地址匹配。如果匹配,我们使用`GetPhysicalAddress`方法获取MAC地址,并以冒号分隔的格式输出。 需要注意的是,由于操作系统和网络配置的差异,获取MAC地址的过程...
【IP操作】标签暗示系统可能包含网络通信功能,比如自动获取或分配IP地址,以便于管理和监控实验机房中的设备。这可能是通过C#的System.Net命名空间实现的,它提供了一系列的类和方法来处理网络连接和数据传输。 ...
IP地址(Internet Protocol Address)是互联网上的设备在网络层的唯一标识,而MAC地址(Media Access Control Address)是数据链路层的物理设备地址,通常用于局域网内的设备识别。在Windows系统中,我们可以使用`...
在C#编程中,获取局域网IP地址和网卡MAC地址是常见的网络编程任务,这对于网络设备管理和诊断尤其有用。下面将详细讲解如何通过C#实现这些功能。 首先,让我们了解一下基本概念: 1. IP地址:Internet Protocol ...
用asp c#实现的IP查询功能 ,支持url查询,支持ip地址查询.其中还包含一个ip范围的access数据库,这个我认为很有用,可以很方便的查找到ip地址的大概范围.其中为源代码.是aspx格式...
“\\192.168.1.2\\accessݿ\\access1.mdb”表示数据库位于IP地址为192.168.1.2的服务器上的特定路径下。注意路径中的双反斜杠(\\)是为了确保路径能够在字符串中正确解析。 ### 四、创建连接对象 在给定的部分...
C#作为.NET框架的主要编程语言,提供了丰富的类库来处理网络相关的操作。本教程将深入讲解如何使用C#来获取局域网内所有设备的IP和MAC地址。 首先,我们要理解IP和MAC地址的概念。IP(Internet Protocol)地址是...
在C#编程环境中,获取本地计算机的IP地址和MAC地址是常见的需求,特别是在网络通信或者设备定位等场景中。下面将详细介绍如何通过C#来实现这些功能。 首先,我们需要了解IP地址和MAC地址的基本概念。IP(Internet ...