{{>toc}} h1. 网络监控(防火墙)接口定义 |_. 接口 |_. 含义| |EbnftOpenDriver|获取驱动句柄.| |EbnftIpMonitorStop|关闭防火墙.| |EbnftIpMonitorAllow|开启防火墙,允许网络通信.| |EbnftIpMonitorBlock|开启防火墙,阻断网络通信.| |EbnftAddBlackRule|添加黑名单.| |EbnftDeleteBlackRule|删除黑名单.| |EbnftAddWhiteRule|添加白名单.| |EbnftDeleteWhiteRule|删除白名单.| |EbnftClearBlackRule|删除所有黑名单.| |EbnftClearWhiteRule|删除所有白名单.| |EbnftClearAllRule|删除所有黑白名单.| |EbnftQueryAllRules|获取白名单.| |GetIPAddrByIpAddString|把IP地址字符串转换成整型| h2. 获取驱动句柄 打开驱动获取驱动句柄,成功打开后的句柄利用CloseHandle(HANDLE hObject) 关闭。
HANDLE
EbnftOpenDriver(
);
|_. 返回值 |_. 含义|
|HANDLE|驱动打开后的句柄.|
h2. 关闭防火墙
关闭防火墙,使得所有网络都能够正常通信
BOOL
EbnftIpMonitorAllow(
_In_ HANDLE bDeviceHandle
);
|_. 参数 |_. 含义|
|bDeviceHandle|驱动句柄.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确关闭防火墙.|
|FALSE |关闭防火墙发生错误.
利用GetLastError() 获取错误详细信息|
h2. 开启防火墙,允许网络通信
开启网络IP监控防火墙功能,并使得所有黑白名单之外的IP地址都能够正常通信
BOOL
EbnftIpMonitorStop(
_In_ HANDLE bDeviceHandle
);
|_. 参数 |_. 含义|
|bDeviceHandle|驱动句柄.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确开启防火墙.|
|FALSE |开启防火墙发生错误.
利用GetLastError() 获取错误详细信息|
h2. 开启防火墙,阻断网络通信
开启网络IP监控防火墙功能,并阻断黑白名单之外的通信
BOOL
EbnftIpMonitorBlock(
_In_ HANDLE bDeviceHandle
);
|_. 参数 |_. 含义|
|bDeviceHandle|驱动句柄.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确开启防火墙.|
|FALSE |开启防火墙发生错误.
利用GetLastError() 获取错误详细信息|
h2. 获取防火墙状态
获取当前防火墙是否开启,获取防火墙开启时状态
BOOL
EbnftIpMonitorQuery(
_In_ HANDLE bDeviceHandle,
_Out_ PINT status
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|/4. status|传出|当前防火墙状态.|
|IpMonitorNone = 0 |防火墙关闭状态.|
|IpMonitorAllow = 1|防火墙打开,允许网络通信.|
|IpMonitorBlock = 2|防火墙关闭,阻断网络通信.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确开启防火墙.|
|FALSE |获取防火墙状态发生错误.
利用GetLastError() 获取错误详细信息|
h2. 添加黑名单
把IP区间或独立IP地址添加到黑名单,阻断此ip通信
BOOL
EbnftAddBlackRule(
_In_ HANDLE bDeviceHandle,
_In_ UINT32 blackAddr1,
_In_ UINT32 blackAddr2
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|blackAddr1|传入|IP区间开始IP / 独立IP地址.|
|blackAddr2|传入|IP区间结束IP / 为0时代表独立IP.|
其中:整形IP地址结构为 xxx1 << 24 |xxx2 << 16 |xxx3 << 8 |xxx4 <假定IP字符串:xxx1.xxx2.xxx3.xxx4>
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确添加黑名单.|
|FALSE |添加黑名单失败.
利用GetLastError() 获取错误详细信息|
|_. 错误值 |_. 含义|
|0|无错误.|
|0xE00B0001L|当前黑名单中已经存在相同IP地址/区间
判断标准为 相同的IP地址(区间)|
h2. 删除黑名单
把IP区间或独立IP地址从当前黑名单中删除
BOOL
EbnftDeleteBlackRule(
_In_ HANDLE bDeviceHandle,
_In_ UINT32 blackAddr1,
_In_ UINT32 blackAddr2
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|blackAddr1|传入|要删除的IP区间开始IP / 独立IP地址.|
|blackAddr2|传入|要删除的IP区间结束IP / 为0时代表独立IP.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确删除黑名单.|
|FALSE |删除黑名单失败.
利用GetLastError() 获取错误详细信息|
|_. 错误值 |_. 含义|
|0|无错误.|
|0xE00B0003L|当前黑名单无此IP地址(区间)|
h2. 添加白名单
把IP区间或独立IP地址添加到黑名单列表中
BOOL
EbnftAddWhiteRule(
_In_ HANDLE bDeviceHandle,
_In_ UINT32 whiteAddr1,
_In_ UINT32 whiteAddr2
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|whiteAddr1|传入|要添加的IP区间开始IP / 独立IP地址.|
|whiteAddr2|传入|要添加的IP区间结束IP / 为0时代表独立IP.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确添加白名单.|
|FALSE |添加白名单失败.
利用GetLastError() 获取错误详细信息|
|_. 错误值 |_. 含义|
|0|无错误.|
|0xE00B0001L|当前已存在相同IP(区间)的白名单|
h2. 删除白名单
把IP区间或独立IP地址从黑名单列表中删除
BOOL
EbnftDeleteWhiteRule(
_In_ HANDLE bDeviceHandle,
_In_ UINT32 whiteAddr1,
_In_ UINT32 whiteAddr2
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|whiteAddr1|传入|要删除的IP区间开始IP / 独立IP地址.|
|whiteAddr2|传入|要删除的IP区间结束IP / 为0时代表独立IP.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确删除白名单.|
|FALSE |删除白名单失败.
利用GetLastError() 获取错误详细信息|
|_. 错误值 |_. 含义|
|0|无错误.|
|0xE00B0003L|不存在当前IP(区间)白名单|
h2. 删除所有黑名单
删除当前所有黑名单
BOOL
EbnftClearBlackRule(
_In_ HANDLE bDeviceHandle
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确删除黑名单.|
|FALSE |删除黑名单失败.
利用GetLastError() 获取错误详细信息|
h2. 删除所有白名单
删除当前所有白名单
BOOL
EbnftClearWhiteRule(
_In_ HANDLE bDeviceHandle
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确删除白名单.|
|FALSE |删除黑名单失败.
利用GetLastError() 获取错误详细信息|
h2. 删除所有黑白名单
删除当前所有黑白名单
BOOL
EbnftClearAllRule(
_In_ HANDLE bDeviceHandle
);
|_. 参数 |传入/传出|_. 含义|
|bDeviceHandle|传入|驱动句柄.|
|_. 返回值类型 |返回值|_. 含义|
|/2. BOOL|TRUE|正确删除所有黑白名单.|
|FALSE |删除黑名单失败.
利用GetLastError() 获取错误详细信息|
h2. 把IP地址字符串转换成整型
把类型为xxx1.xxx2.xxx3.xxx4的IP字符串转换成IP整形 xxx1 << 24 |xxx2 << 16 |xxx3 << 8 |xxx4
BOOL
GetIPAddrByIpAddString(
_In_ IP_ADDRESS_STRING bIpAddrString,
_Inout_ PINT32 bIpAddr
);
|_. 参数 |传入/传出|_. 含义|
|bIpAddrString|传入|字符串类型IP地址.|
|bIpAddr|传出|整形IP地址.|
|_. 返回值类型 |返回值|_. 含义|
| BOOL|TRUE|IP地址被正确转换.|