我借助 DHCP 连接到 LAN。有时,我需要访问某人带到办公室的未配置为使用 DHCP 的笔记本电脑。到目前为止,我需要执行以下操作:
- 将笔记本电脑连接到网络端口
- 记下笔记本电脑的 IP 地址和掩码
- 更改笔记本电脑的网络设置以匹配我们的 LAN
- 做我的工作
- 恢复之前的设置
在我的旧电脑(Windows XP)中,我发现了一个技巧,可以配置我的网卡以同时使用第二个 IP/掩码,这样我就不需要摆弄客户的笔记本电脑设置了。遗憾的是,我丢失了链接,找不到合适的搜索词来再次找到它。
我怎样才能实现它?
编辑:我找到了链接(配置虚拟 IP 地址)但该程序在我的 Windows 7 机器上不起作用:ipconfig /all
没有显示新地址,我甚至无法 ping 自己 :(
答案1
你可以为该网卡添加第二个 IP如果NIC 未设置为 DHCP。
这意味着您可以:
- 需要为您的工作笔记本电脑获取一个固定 IP,这样您就可以这样做。
- 转到开始,设置,控制面板,网络连接
- 选择 LAN 并转到属性
- 进入高级,点击“IP 设置”,添加第二个 IP
- 或者仍需要:
- 记下当前的 IP/网络掩码
- 转到开始、设置、控制面板、网络连接。
- 选择 LAN 并转到属性。
- 取消标记 DHCP。按照第一步中写的那样设置一个手动 IP。
- 转到高级,选项卡 IP 设置并添加第二个 IP。
- 或者使用第二张网卡获取第二个 IP(通常是最简单的方法)
- 或者安装其他软件以进行更多网络管理。
我认为最后一种方式在企业网络上不适用。 - 或者您可以安装一个 VM 并将其配置为备用 IP。(可能仅在您已经使用 VM 并且不想中断与主桌面的现有连接时才有用)。
(在 XP 中)
(在win7中)
http://answers.microsoft.com将其作为适用于 win 7 的 C sharp 解决方案:
但是它没有解释它为什么起作用、如何起作用或如何使用它。
公共类 IPAdder { [DllImport("iphlpapi.dll", EntryPoint = "AddIPAddress", SetLastError = true)] 私有静态外部 UInt32 MyAddIPAddress(UInt32 Address,UInt32 IpMaskint,int IfIndex, 输出 IntPtr NTEContext,输出 IntPtr NTEInstance); 公共IPAdder() { } 公共静态void AddIPAddress(String IPAddress,String SubnetMask,int ifIndex) { 系统.Net。 IP地址 IPAdd = System.Net.IP地址.解析(IP地址); 系统.Net。 IP地址子网 = 系统.Net.IP地址.解析(子网掩码); 不安全 { int MyNTEContext = 0; int MyNTEInstance = 0; IntPtr ptrMyNTEContext = new IntPtr(MyNTEContext); IntPtr ptrMyNTEInstance = new IntPtr(MyNTEInstance); UInt32 结果 = MyAddIPAddress((uint)IPAdd.Address, (uint)SubNet.Address,ifIndex,输出ptrMyNTEContext,输出ptrMyNTEInstance); }; } } 公共 IP 地址 Get37() { IP地址ipa = IP地址.Any; // 检查网络接口 foreach (NetworkInterface ni 在 NetworkInterface.GetAllNetworkInterfaces() 中) { 如果((ni.OperationalStatus!= OperationalStatus.Up)|| (ni.NetworkInterfaceType ==NetworkInterfaceType.Loopback)|| (ni.NetworkInterfaceType == NetworkInterfaceType.Tunnel)) 继续; 如果((ni.Description.IndexOf(“虚拟”,StringComparison.OrdinalIgnoreCase)> = 0)|| (ni.Name.IndexOf(“虚拟”,StringComparison.OrdinalIgnoreCase)> = 0)) 继续; 如果(ni.Description.Equals(“Microsoft 环回适配器”,StringComparison.OrdinalIgnoreCase)) 继续; IP接口属性ipip = ni.GetIPProperties(); bool found37 = false; foreach(ipip.UnicastAddresses 中的 IPAddressInformation unic) { 字符串条带 = unic.Address.ToString(); 如果(strip==“37.0.0.1”) { ipa = unic.地址; 找到37 = 真; 休息; } } 如果(!found37) { IPAdder.添加IP地址("37.0.0.1", "255.255.255.0", (int)(uint)ni.GetType().GetField("索引", System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(ni)); ipa =IP地址.解析("37.0.0.1"); } 休息; } 返回 ipa; }
[编辑2]
如果允许使用外部软件,则Win IP 配置似乎可以完成这项工作。
(屏幕截图来自 v2.7。链接现已更改为 v4)。
答案2
备用配置功能可建立多网络连接。如果您在办公室和家中使用移动计算机,则可以使用备用配置功能。当您在办公室时,计算机使用 DHCP 分配的 TCP/IP 配置。当您在家时(您无法访问 DHCP 服务器),计算机会自动使用备用配置。
使用备用配置功能 要使用备用配置功能:
- 在开始菜单,点击控制面板。
- 点击网络和网络连接。
- 点击网络连接。
- 右键单击要配置的局域网 (LAN) 或高速 Internet 连接,然后单击特性。
- 点击互联网协议 (TCP/IP)并点击特性。
- 点击替代配置标签。
灵感来自微软
答案3
Windows XP 的程序涉及编辑注册表,详情请参见配置虚拟 IP 地址。
然而,根据 Stack Overflow 上的这个问题(是否可以在 Windows7 上配置虚拟网络接口?) 出于安全原因,Vista 中禁用了该功能。显然,除非使用第三方客户驱动程序,否则无法执行此操作。
答案4
我建议“永久”编辑路由表。这样,您仍然可以使用不改变的 DHCP 配置,同时为连接的笔记本电脑添加路由选项,而不会弄乱其配置:
route -p ADD <the IP of the laptop> mask 255.255.255.255 <your PC's IP> <some metric value> <your PC IP>
当然,如果您愿意,您可以选择子网路由而不是主机路由。