wordpress   发布时间:2022-04-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了winapi – Win32套接字 – 强制ip数据包在发送到其他本地接口时离开物理接口大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

简介:我正在尝试创建套接字以在同一台机器上存在的两个物理接口之间传递数据,而Win32套接字始终直接在内核中转发流量,而不是通过物理接口.有没有办法禁用此行为,可能通过设备设置,注册表调整,路由表恶作剧或套接字选项?我们正在使用 Windows XP SP3. 一些背景.我正在尝试构建一些完全自动化的IP测试来运行我们的自定义IPv4设备.我们有一个大型的Windows XP机器实验室,以及我们连
简介:我正在尝试创建套接字以在同一台机器上存在的两个物理接口之间传递数据,而Win32套接字始终直接在内核中转发流量,而不是通过物理接口.有没有办法禁用此行为,可能通过设备设置,注册表调整,路由表恶作剧或套接字选项?我们正在使用 Windows XP SP3.

一些背景.我正在尝试构建一些完全自动化的IP测试来运行我们的自定义IPv4设备.我们有一个大型的Windows XP机器实验室,以及我们连接的每个设备的单独物理以太网接口.我们的设备实际上是以太网路由器,每个路由器都有自己的IP.

我们需要通过我们的设备将数据发送到我们的实验室机器,然后再返回到同一台计算机.我们将通过设备发送单播和多播UDP,TCP和广播IP流量.

我们希望(并且可能需要)流量来自它预定的同一台机器.
为此,我们在其自己的子网上配置两个独立的NIC,每个NIC都有自己的IP,例如NIC#1(10.0.0.1/24)和NIC#2(10.0.1.1/24).我们的设备就像简单的直通路由器一样,有两个接口,一个在10.0.0.0/24子网上,一个在10.0.1.0/24子网上,它们只是来回转发数据包.

为了生成我们的数据,我们希望能够使用Win32套接字,因为它是众所周知的,良好的支持,我们的客户正在使用,并且可能是最快速方法.数据包注入可能适用于UDP和广播IP,但很可能不适用于TCP.我会接受使用数据包注入的想法,但更喜欢标准的Win32套接字.

摘要中所述,数据包永远不会离开机器.我像疯子一样用Google搜索,但我找不到多少.有任何想法吗?

解决方法

@H_404_23@ 使用Windows的命令行ROUTE实用程序.您可以对其进行配置,以便将发送到特定子网上特定IP地址的任何IP数据包发送到另一个IP /设备.例如:

route ADD <NIC_1_IP> MASK <NIC_1_subnet> <DEVICE_IP_CONNECTED_TO_NIC_2> METRIC 1
route ADD <NIC_2_IP> MASK <NIC_2_subnet> <DEVICE_IP_CONNECTED_TO_NIC_1> METRIC 1

或者,如果您知道NIC接口的索引号,则可以指定它们:

route ADD <NIC_1_IP> MASK <NIC_1_subnet> METRIC 1 IF <NIC_2_INTF>
route ADD <NIC_2_IP> MASK <NIC_2_subnet> METRIC 1 IF <NIC_1_INTF>

这样,无论何时将数据包发送到NIC#1的IP,数据包都会转到连接到NIC#2的设备,然后将其传递给NIC#1.反之亦然,发送到NIC#2的IP的数据包.

例如,如果PC连接到具有路由器的网络,这是一种允许WireShark捕获本地IP流量的有用技术.从一个本地IP /端口到另一个本地IP /端口的数据包可以从路由器弹回到PC,因此它们可以通过WireShark可以监控的物理接口(WireShark将看到每个本地数据包的重复副本 – 一个出站,一个入站 – 但你可以过滤掉重复的内容).

大佬总结

以上是大佬教程为你收集整理的winapi – Win32套接字 – 强制ip数据包在发送到其他本地接口时离开物理接口全部内容,希望文章能够帮你解决winapi – Win32套接字 – 强制ip数据包在发送到其他本地接口时离开物理接口所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。