一张卡连接两个 LAN 网络

一张卡连接两个 LAN 网络

我借助 DHCP 连接到 LAN。有时,我需要访问某人带到办公室的未配置为使用 DHCP 的笔记本电脑。到目前为止,我需要执行以下操作:

  1. 将笔记本电脑连接到网络端口
  2. 记下笔记本电脑的 IP 地址和掩码
  3. 更改笔记本电脑的网络设置以匹配我们的 LAN
  4. 做我的工作
  5. 恢复之前的设置

在我的旧电脑(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 中)

XP 的屏幕截图:高级 TCP/IP 设置。输入了两个 IP

(在win7中) Win7 Ultimate X64 的屏幕截图:高级 TCP/IP 设置。输入了两个 IP


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

打开 cmd.exe 的 win7 屏幕截图,其中 ipconfig 输出和 winip cfg **V2.7** 在同一张图中

答案2

备用配置功能可建立多网络连接。如果您在办公室和家中使用移动计算机,则可以使用备用配置功能。当您在办公室时,计算机使用 DHCP 分配的 TCP/IP 配置。当您在家时(您无法访问 DHCP 服务器),计算机会自动使用备用配置。

使用备用配置功能 要使用备用配置功能:

  1. 开始菜单,点击控制面板
  2. 点击网络网络连接
  3. 点击网络连接
  4. 右键单击要配置的局域网 (LAN) 或高速 Internet 连接,然后单击特性
  5. 点击互联网协议 (TCP/IP)并点击特性
  6. 点击替代配置标签。

灵感来自微软

答案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>

当然,如果您愿意,您可以选择子网路由而不是主机路由。

相关内容