首页 > 解决方案 > 如何使 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;
}

标签: networkingopenvpn

解决方案


推荐阅读