比较核心的技术了 虚拟ip的一种实现方式(手工添加和C#添加)
来源:互联网 发布:vision画图软件 编辑:程序博客网 时间:2024/05/01 05:04
http://www.cnblogs.com/ProJKY/p/VirtualIPAddressImp.html
虚拟IP技术在高可用领域像数据库SQLSERVER、web服务器等场景下使用很多,很疑惑它是怎么实现的,偶然,发现了一种方式可以实现虚拟ip。它的原理在于同一个物理网卡,是可以拥有多个ip地址的,至于虚拟网卡,也可用通过该方式拥有多个ip。下面,就拿安装vmware后的虚拟网卡做例子,该网络连接已具有192.168.32.1的ip,尝试添加一个192.168.32.6的虚拟ip地址,介绍这两种方式。
第一种,手工添加
1、打开控制面板,在想要添加虚拟ip的网络连接上右键,选择属性。在打开的属性窗口中选中“此连接使用下列项目”中的“Internet 协议版本 4 (TCP/IPv4)”。
2、点击“属性”按钮,进入“Internet 协议版本 4(TCP/IPv4)属性”窗口,可以看到,该网络连接设置了固定的ip地址为192.168.32.1。
3、点击“高级”按钮,进入“高级TCP/IP设置”窗口。
4、点击在IP地址栏中的添加按钮,弹出添加IP地址的窗口,输入192.168.32.6即可,子网掩码自动生成。
5、点击添加按钮后,一步一步点击确定按钮,最后,尝试ping一下该虚拟ip地址。能ping通,则成功了。
第二种, C#添加虚拟IP
采用编程方式,可以自动添加和移除该虚拟IP地址,所谓的虚拟IP地址的转移就是这么来实现的。当拥有虚拟IP的机器故障时,在故障机器上尝试删除该虚拟IP并在健康机器上重新添加该虚拟IP。具体的实现就相当复杂了,下面,就列出添加虚拟IP的代码,供参考。
需要在该项目上引用“System.Management”程序集。
using System;using System.Management;namespace ProJKY{ public class AddVirtualIpAddress { public void Test() { ManagementClass findAdapters = new ManagementClass("Win32_NetworkAdapterConfiguration"); ManagementObjectCollection adapters = findAdapters.GetInstances(); foreach (ManagementObject adapter in adapters) { // 查找符合条件的网卡 if ((string)adapter["ServiceName"] != "VMware Virtual Ethernet Adapter for VMnet8") continue; string[] ip = new string[] { "192.168.32.1","192.168.32.6"}; string[] mask = new string[] { "255.255.255.0","255.255.255.0"}; try{ ManagementBaseObject newIP = adapter.GetMethodParameters("EnableStatic"); newIP["IPAddress"] = ip; newIP["SubnetMask"] = mask; ManagementBaseObject setIP = adapter.InvokeMethod("EnableStatic", newIP, null); UInt32 result = (UInt32)(setIP["returnValue"]); } catch (Exception) { throw; } } } }}
需要删除一个虚拟IP的话,在string[] ip 中去掉虚拟IP和对应的子网掩码就ok了。经测试,和手工添加的效果一样,能ping通。
- 比较核心的技术了 虚拟ip的一种实现方式(手工添加和C#添加)
- 手工添加datagridview数据的一种方法
- 一种动态添加工具按钮的方式
- C# dgv添加行号的一种方法
- C# Json的添加方式
- 手工添加消息的方法(转载)
- DataGrid数据项的手工添加
- 批量添加虚拟IP
- cocos2d 中添加显示文字的三种方式(CCLabelTTF 、CCLabelBMFont 和CCLabelAtlas)比较
- JS 实现文章资讯添加热词链接的一种方式
- 给项目添加验证码的一种方式
- js实现下拉框支持添加和删除的方式
- CentOS6.5添加虚拟IP(VIP)
- C#添加虚拟键盘
- 一种IP的获取方式
- 虚IP的添加和删除
- [原]虚IP的添加和删除
- Mackbook添加主机名和ip的映射
- 关于URL加载系统
- echarts使图标能自适应浏览器窗口变化,及经纬度转换
- java 同步 Synchonized 锁 ReentrantLock 原理 源码
- IP、ICMP、UDP、TCP 校验和算法
- Project Euler:Problem 85 Counting rectangles
- 比较核心的技术了 虚拟ip的一种实现方式(手工添加和C#添加)
- linux常用命令总结
- 非常方便地实现Window与Ubuntu共享文本字符串
- 7,鼠标学习三——焦点切换
- Search Insert Position
- HDU 5289 Assignment
- 基于DBUtils中的查询对Java中的回调函数的理解
- POJ3264
- cookie和session