gpt4 book ai didi

c# - 有没有办法指定 .net 将使用哪个 NetworkInterface?

转载 作者:行者123 更新时间:2023-12-02 17:10:30 26 4
gpt4 key购买 nike

我想使用 Wifi 和 LAN 连接在设备上运行一系列测试。我有两张网卡,一张是WiFi,一张是有线。该设备具有可通过两个网络接口(interface)访问的单个 IP 地址。有没有办法保证我的机器使用特定的网络接口(interface),以便我可以通过有线连接运行所有测试,然后通过 Wifi 连接运行所有测试?

请记住,两个连接共享同一个子网,因此任何一个都将成功连接到设备。我只想能够来回切换并指定我在任何给定时间使用的连接。

我正在使用 C# 在 .net 上使用 HttpClient。有没有办法强制 HttpClient 使用特定的网络接口(interface)?它似乎会根据 IP 地址自动选择一个,但在这种情况下,有 2 个网络接口(interface)可以工作。我需要能够以编程方式来回切换以运行我的自动化测试。

我注意到可以通过 IP4 属性高级 TCP/IP 设置手动更改称为“接口(interface)指标”的东西。每次都会使用编号较小的接口(interface)吗?有没有办法以编程方式更改此值?

更多说明:我没有直接跳到禁用 WiFi NIC 或有线 NIC 来回的原因是当您禁用 WiFi NIC 时,您断开了它所连接的设备,并且它不会自动重新连接你启用它。 (即使您说“自动连接”,它在重新启用时也不会连接)。但是,我找到了一个快速的解决方案。将有线 NIC 上的接口(interface)指标设置为低于 WiFi NIC 上的接口(interface)指标。然后,只需启用和禁用有线 NIC。禁用时,系统将使用 WiFi NIC。启用后,系统将使用有线 NIC,因为它的接口(interface)指标设置得较低。现在,我只需要弄清楚如何以编程方式启用/禁用有线 NIC...

最佳答案

一种方法是更新您的路由表,将特定 IP 的流量强制传输到特定的 NIC。路由表用于决定将流量发送到哪个 NIC。

您可以通过几种方式做到这一点:

1) 使用 P/Invoke 通过 C# 代码更新路由表(参见 here for a good example ,但基本上您是在调用 CreateIpForwardEntry )。

2) 使用Process.Start调用route.exe,例如

route.exe ADD destination_network MASK subnet_mask  gateway_ip metric_cost

route.exe CHANGE destination_network MASK subnet_mask  gateway_ip metric_cost

关于c# - 有没有办法指定 .net 将使用哪个 NetworkInterface?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49579420/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com