#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <fltdefs.h>

#pragma comment(lib, "iphlpapi.lib")

int main(void)
{
    BYTE localAddr[4] = { 192,168,4,2 };

    INTERFACE_HANDLE hFilterIf;
    DWORD dwRet = PfCreateInterface(
        NULL, PF_ACTION_DROP, PF_ACTION_DROP, FALSE, TRUE, &hFilterIf);
    if(dwRet != NO_ERROR){
        fprintf(stderr, "PfCreateInterface failed");
        return -1;
    }

    printf("Start Filtering");

    dwRet = PfBindInterfaceToIPAddress(hFilterIf, PF_IPV4, localAddr);
    if(dwRet != NO_ERROR){
        fprintf(stderr, "PfBindInterfaceToIPAddress failed");
        return -1;
    }

    _getch();

    PfUnBindInterface(hFilterIf);
    PfDeleteInterface(hFilterIf);
    return 0;
}
