• 您的位置我爱Aspx >> VC.Net >> 简单分析用SPI实现防火墙
  • 简单分析用SPI实现防火墙

  • 作者:aspxer  来源:internet  日期:2007-5-21 23:49:04  关键字:
  • return 1;

    }

    然后我们实现自己的WSPSend

    int WSPSend (

    SOCKET s,

    LPWSABUF lpBuffers,

    DWORD dwBufferCount,

    LPDWORD lpNumberOfBytesSent,

    DWORD dwFlags,

    LPWSAOVERLAPPED lpOverlapped,

    LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine,

    LPWSATHREADID lpThreadId,

    LPINT lpErrno

    )

    {

    /*++

    在这里我们用getsockname等函数和第一个参数可以得到这个套接字的端口和IP这些东西,还有buffer这些东西都可以在这里处理,实现IP过滤包过滤都可以实现,然后再调用下一层服务提供者的相应函数并返回

    --*/

    return SystemProc.lpWSPSend(s,lpBuffers,dwBufferCount,lpNumberOfBytesSent,dwFlags,lpOverlapped,lpCompletionRoutine,lpThreaId,lpErrno);

    }

    当然,在具体的实现中没这么简单,对于WINSOCKET 中的复杂的I/O模型和重叠请求中,还要写回调函数等,现在就不讨论这些问题,有兴趣的自己查找资料

    还有,用这个也可以实现sniffer功能,分析出比如POP3以及TELNET等明文传输的网络协议中你感兴趣的东西

    数据都在LPWSABUF lpBuffers,这个参数里

    下面给出这个结构

    该知道怎么解析包了吧?

    typedef struct __WSABUF {

    u_long len;

    char FAR *buf;

    } WSABUF, FAR * LPWSABUF;

    -----------------

    待续.....

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:利用SharpZipLib实现实时zip压缩下载整个目录
    下一篇:简单分析用SPI实现防火墙
  • 相关文章