networking - 如何使 TAP 适配器接受来自 PC 的所有流量?
问题描述
我正在开发一个客户端应用程序来捕获 PC 上的流量。我正在使用 OpenVpn tun/tap 适配器。但是当我测试应用程序流量通过无线局域网适配器时,它不起作用。如何让所有流量通过 tun/tap 适配器?
DWORD active = 1;
DWORD len;
int status = DeviceIoControl(handle,
TAP_CONTROL_CODE(6, 0), // TAP_IOCTL_SET_MEDIA_STATUS
&active,
sizeof(active),
&active,
sizeof(active),
&len,
NULL
);
if(status == 0)
{
return NULL;
}
int configtun[3] = {0x01000b0a, 0x01000b0a, 0x0000ffff}; // IP, NETWORK, MASK
configtun[0] = inet_addr(ip);
configtun[1] = inet_addr(ip);
char *p = (char*)(configtun+1);
*(p+3) = 0;
status = DeviceIoControl(handle,
TAP_CONTROL_CODE(10, 0), // TAP_IOCTL_CONFIG_TUN
&configtun,
sizeof(configtun),
&configtun,
sizeof(configtun),//active),
&len,
NULL
);
if(status == 0)
{
return NULL;
}
解决方案
推荐阅读
- sql - 如何自我加入条件并在前面添加一列?
- php - 仅选择一个单选按钮,但由于 PHP,它们不能具有相同的名称
- node.js - 启动 Angular 应用程序作为 NodeJS 项目的默认设置
- ruby-on-rails - 图像调整大小后,新图像部分变灰
- python - 如何在 Python 3 中找出 .pyc 标头的幻数
- java - javafx一个接一个地运行
- r - R - 按照一般格式从字符串中提取信息
- javascript - 怎么不推所有的阵列没有这个产品
- sql-server - SQL Server - 仅过滤列等于值的记录
- arrays - 将数组列表复制到切片列表工作错误