请教各位高手,在ndis驱动开发中,调用什么函数可以获得截获包的源IP和目的IP。
我是ndis的初学者,请多多指教!

解决方案 »

  1.   

    没有什么函数
    自己分析,ip head&tcp head格式是固定的
      

  2.   

    IP协议头是固定的,你可以用Iris抓几个包来看看,同时参考一下《TCP/IP详解》
    通常是把IP字段取到一个DWORD里,在解析成字符串。
      

  3.   

    不好意思,xiaoxx(really sg)朋友我再问一下。我从包里提取出了IP地址信息这一部分,是十六进制形式的,要转换成IP地址形式,也就是字符串形式,你能给我一些代码提示吗?万分感激!
      

  4.   


    CString CMyClass::GetStrIPFromDW(DWORD dwIP)
    {
    CString strTemp;
    strTemp.Format("%d.%d.%d.%d",
    HIBYTE(HIWORD(dwIP)) , LOBYTE(HIWORD(dwIP)),
    HIBYTE(LOWORD(dwIP)) , LOBYTE(LOWORD(dwIP)));
    return strTemp;
    }
      

  5.   

    直接使用winsock api就行了
    IN_ADDR dwIP;
    dwIP.S_un.S_addr=0x.....(你获得的16进制ip)
    则inet_ntoa(dwIP)返回的字符串就是你想得到的ip.