📄 test.cpp
字号:
#include <stdio.h>
#include <windows.h>
/*#import "sign.dll" */
//定义函数指针
//typedef int (*FUN)(int, int);
//typedef int (*FUN)(char *,char *,char *,char *,char *,char *,char *,int);
//内网定义
#define NETWORK_LIST 0
//访问外网
#define ACCESS_INTERNET 1
//白名单
#define WHITE_LIST 2
//全部数据包
#define ALL_FILTER 3
//本机端口过滤
#define LOCAL_PORT_FILTER 4
//IP黑名单
#define BLACK_LIST 5
//网络过滤
#define NET_FILTER 6
typedef int (*REG)(char *);
typedef int (*STOP)(char *);
typedef int (*RUN)(char *);
typedef int (*ADD_RULER)(char *,USHORT ,USHORT, char * ,USHORT ,char *,char *,USHORT , char *, char *, USHORT ,BOOLEAN);
typedef int (*START_FILTER)(char *);
//#import "add.dll" no_namespace
int main(int argc,char **argv)
{
//HINSTANCE hInst = LoadLibrary("testdll.dll");
//FUN add;
//if(hInst)
//{
//add=(FUN)GetProcAddress(hInst, "add");
//}
///*if(add)*/
//int i = add(1,2);
//printf("%d\n",i);
//if(hInst)
//FreeLibrary(hInst);
HINSTANCE hInst = LoadLibrary("ctr_filter.dll");
STOP unInstall_filter;
ADD_RULER addRule;
REG RegHandelDev;
RUN startFilter;
if(hInst)
{
addRule=(ADD_RULER)GetProcAddress(hInst, "addRule");
startFilter = (RUN)GetProcAddress(hInst, "startFilter");
unInstall_filter=(STOP)GetProcAddress(hInst, "unInstall_filter");
RegHandelDev = (REG)GetProcAddress(hInst, "RegHandelDev");
}
int rtn,i=0;
rtn = RegHandelDev("IPPackageFilter");
/**
* 规则函数: addRule(char *driver_name,USHORT type,USHORT protocol,char *sourceIp,char *sourceMask,USHORT sourcePort, char *destinationIp, char *destinationMask, USHORT destinationPort,BOOLEAN isDrop);
* 规则说明:
* type:参数
* LOCAL_PORT_FILTER类型: 端口过滤。
* BLANK_IP_FILTER类型: IP黑名单过滤。
* NET_FILTER类型:子网过滤。
* protocol参数:协议号
* 协议可以指定协议类型,TCP=6,UDP=17,ICMP=1。如果指定=0,表示对所有协议作用。
* sourceIp、sourceMask参数:源IP地址和掩码
* sourcePort参数:源端口号。等于0表示不指定端口。
* destinationIp、destinationMask参数:目的地址、目的掩码。
* destinationPort参数:目的端口。等于0表示不指定端口。
* isDrop参数:是否丢弃这个数据分组。TRUE:丢弃;FALSE:放过。
*/
//一个应用层上的过滤。不让访问ORACLE数据库
//白名单需要先添加在端口过滤之后,
// rtn = addRule("IPPackageFilter", LOCAL_PORT_FILTER, 0, "", "", 0, "139.9.9.37", "", 1521, FALSE);
rtn = addRule("IPPackageFilter", WHITE_LIST,0,"139.9.9.144", 0, "", "", 0, "139.9.9.8", "", 0, TRUE);
// rtn = addRule("IPPackageFilter", ALL_FILTER, 0, "", "",0, "", "", 0, TRUE);
//IP黑名单
//rtn = addRule("IPPackageFilter", BLANK_IP_FILTER, 0, "", "", 0, "139.9.9.37", "", 0, TRUE);
//子网过滤,限制子网访问
rtn = addRule("IPPackageFilter", NET_FILTER,0,"139.9.9.144", 0, "", "",0, "139.9.9.0", "255.255.255.0", 0, TRUE);
rtn = startFilter("IPPackageFilter");
rtn = unInstall_filter("IPPackageFilter");
if(hInst)
FreeLibrary(hInst);
//HINSTANCE hInst = LoadLibrary("sign.dll");
//FUN Sign_File;
//if(hInst)
//{
//Sign_File=(FUN)GetProcAddress(hInst, "Sign_File");
//}
//Sign_File("1234","c:\\1.txt","c:\\dfadfafjasf.txt");
// if(hInst)
//FreeLibrary(hInst);
//HINSTANCE hInst = LoadLibrary("VerifyLdap.dll");
//FUN verify_id;
//int flag;
//if(hInst)
//{
//verify_id=(FUN)GetProcAddress(hInst, "verify_id");
//}
//flag = verify_id("/C=86/ST=Beijing/O=Police/OU=info_office/CN=policeofficer/emailAddress=po@police.cn","d:\\数据库设计说明(运维分系统).doc","d:\\数据库设计说明(运维分系统).sign","139.9.2.165","cn=root,dc=tjhn,dc=com","dc=tjhn,dc=com","secret",389);
///*(char *usr_id,char *data_file,char *sign_file,char *HOSTNAME,char *ROOT_ID ,char *BASE,char *ROOT_PSW,int PORT_NUMBER)*/
//printf("flag = %d\n",flag);
//if(hInst)
//FreeLibrary(hInst);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -