比较核心的技术了 虚拟ip的一种实现方式(手工添加和C#添加)
虚拟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#添加)的更多相关文章
- Devexpress WinForm TreeList的三种数据绑定方式(DataSource绑定、AppendNode添加节点、VirtualTreeGetChildNodes(虚拟树加载模式))
第一种:DataSource绑定,这种绑定方式需要设置TreeList的ParentFieldName和KeyFieldName两个属性,这里需要注意的是KeyFieldName的值必须是唯一的. 代 ...
- 虚拟IP原理及使用
一.前言 高可用性 HA(High Availability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性.HA 系统是目前企业防止核心 ...
- Linux建立虚拟ip的方法
文章来源 运维公会:Linux建立虚拟ip的方法 1.虚拟ip的介绍 虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址.数据包被发送到这个VIP地址, ...
- 虚拟IP技术 ip地址漂移技术
虚拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址.数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口.VIPs大部分用于连接冗余:一个VI ...
- 虚拟IP技术
虚拟IP技术在高可用领域像数据库SQLSERVER.web服务器等场景下使用很多,很疑惑它是怎么实现的,偶然,发现了一种方式可以实现虚拟ip.它的原理在于同一个物理网卡,是可以拥有多个ip地址的,至于 ...
- LVS专题-(3) 虚拟ip理解
1.虚拟IP是什么? 要是单讲解虚拟 IP,理解起来很困难,所以干脆把 动态 IP .固定 IP .实体 IP 与虚拟 IP都讲解一下,加深理解和知识扩展 实体 IP:在网络的世界里,为了要辨识每一部 ...
- 实体ip 虚拟ip 固定ip 动态ip
实体 IP:在网络的世界里,为了要辨识每一部计算机的位置,因此有了计算机 IP 位址的定义.一个 IP 就好似一个门牌!例如,你要去微软的网站的话,就要去『 207.46.197.101 』这个 IP ...
- Linux-eth0 eth0:1 和eth0.1关系、ifconfig以及虚拟IP实现介绍
eth0 eth0:1 和eth0.1三者的关系对应于物理网卡.子网卡.虚拟VLAN网卡的关系:物理网卡:物理网卡这里指的是服务器上实际的网络接口设备,这里我服务器上双网卡,在系统中看到的2个物理网卡 ...
- 虚拟ip配置
虚 拟IP地址(VIP) 是一个不与特定计算机或一个计算机中的网络接口卡(NIC)相连的IP地址.数据包被发送到这个VIP地址,但是所有的数据还是经过真实的网络接口. VIPs大部分用于连接冗余:一个 ...
随机推荐
- 关于thinkphp 中的字段自动检查机制
在thinkphp中有很好用的自动检查机制$_validate() 但是必须与create接收配合使用 可以很方便的帮助我们去判断 namespace Home\Model;use Think\Mod ...
- Hibernate day02笔记
对象状态与一级缓存 状态介绍 hibernate 规定三种状态:瞬时态.持久态.脱管态 状态 瞬时态:transient,session没有缓存对象,数据库也没有对应记录. ...
- 为什么 1KB = 1024Byte???群里讨论。
- delphi Inc函数和Dec函数的用法
inc自增函数 .inc(i,n)://i,n:integer;n为自增量 相当于i:=i+n: .inc(i)://i:integer; 相当于i:=i+; dec自减函数 .dec(i,n): ...
- linux查看访问windows共享目录NT_STATUS_DUPLICATE_NAME问题解决
linux查看访问windows共享目录NT_STATUS_DUPLICATE_NAME问题解决 [jason@superfreak ~]$ smbclient //powerhouse-smb.my ...
- C++STL算法速查
非变易算法 /* 第21章 非变易算法 Non-modifying sequence operations 21.0 advance, distance 为了了解模板,先了解一下这两个迭代器操作函 ...
- Ubuntu 利用 xinetd 限制 SSH 连接数
安装 xinted sudo apt-get install xinetd 修改配置文件 sudo vim /etc/xinetd.conf 在配置文件中加入下列配置 defaults { insta ...
- VC++模态对话框和非模态对话框
MFC中有两种类型的对话框:模态对话框和非模态对话框. 模态对话框是指当其显示时,程序会暂停执行,直到关闭这个模态对话框后,才能继续执行程序中其他任务.非模态对话框是指当其显示时,允许转而执行程序中 ...
- jquery 删除数组元素
expertsId.splice($.inArray(thisID.split('&')[0],expertsId),1); 1. expertsId数组名2. thisID.split('& ...
- Selenium2+python自动化7-xpath定位
前言 在上一篇简单的介绍了用工具查看目标元素的xpath地址,工具查看比较死板,不够灵活,有时候直接复制粘贴会定位不到.这个时候就需要自己手动的去写xpath了,这一篇详细讲解xpath的一些语法. ...