复制于jc567.cn
| //向缓冲区写入数据。 DWORD WriteIo(DWORD code,PVOID buffer,DWORD count) { if(hDriverHandle == NULL) return ERROR_DRIVER_HANDLE; DWORD bytesReturned; BOOL returnCode = DeviceIoControl(hDriverHandle, code, buffer, count, NULL, 0, &bytesReturned, NULL); if(!returnCode) return ERROR_IO_CTRL; return SUCCESS; } 当然直接使用这个方法不太方便,所以定义一个公有函数,用来提供给主程序调用: //开始进行封包过滤 bool StartIpHook() { return (WriteIo(START_IP_HOOK, NULL, 0)==SUCCESS); } |
jc567.cn
| typedef struct _ACCESS_INFO { USHORT protocol; ULONG sourceIp; ULONG destinationIp; USHORT sourcePort; USHORT destinationPort; }ACCESS_INFO; |
| public __gc class IoCtrl { public: USHORT protocol; //网际协议类型 ULONG sourceIp; //源IP地址 ULONG destinationIp; //目的IP地址 复制于jc567.cn USHORT sourcePort; //源端口 USHORT destinationPort; //目的端口 ……………… } |
| void GetAccessInfo() { ACCESS_INFO ai; bool result=(ReadIo(GET_INFO,&ai,sizeof(ai))==SUCCESS); this->protocol=ai.protocol; this->sourceIp=ai.sourceIp; this->destinationIp=ai.destinationIp; this->sourcePort=ai.sourcePort; this->destinationPort=ai.destinationPort; } Tags:用C#开发网络防火墙技术分析
上一篇:用J2ME编写手机短消息发送程序 下一篇:C SDK Symbian开发入门之运行
您的评论·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据 ·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为 精彩推荐最新资讯 |