0
我嘗試使用下面的過濾器轉移包,但它失敗:Windivert過濾錯誤:IfIdx
WinDivertOpen("IfIdx == X", WINDIVERT_LAYER::WINDIVERT_LAYER_NETWORK, 0, 0);
我品嚐它必須從一個特定的接口,其指數爲X的交通疏導方案(0 ,1,2,...)但我得到一個錯誤代碼號87,這表明一個無效的數據包過濾器字符串,層,優先級或標誌。
如果我嘗試使用其他過濾器,如「tcp」,它可以工作,但我只需要將過濾器應用到索引已知的特定接口。如果這個過濾器關鍵不起作用..我能做什麼解決方案?
下面是文檔:https://reqrypt.org/windivert-doc.html#filter_language
的問候和感謝。
編輯:我也試過這樣:
handle = WinDivertOpen("true", WINDIVERT_LAYER::WINDIVERT_LAYER_NETWORK, 0, 0);
if (handle == INVALID_HANDLE_VALUE)
printf("ERROR WINDIVERT: %d", GetLastError());
else
{
while (TRUE)
{
if (WinDivertRecv(handle, packet, sizeof(packet), &addr, &packetLen))
{
if (addr.IfIdx != X)
{
WinDivertSend(handle, packet, packetLen, &addr, NULL);
}
}
}
WinDivertClose(handle);
但封鎖了所有接口的流量,並不僅擋住我的特定接口的索引爲X.