⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 netadapter.cpp

📁 用于网络抓包的源码实现,可以查看特定端口和Ip的数据包
💻 CPP
字号:
#include "NetAdapter.h"

CNetAdapter::CNetAdapter()
{
}

CNetAdapter::~CNetAdapter()
{
}

int CNetAdapter::GetAdapter(SOCKET s, SOCKADDR_IN *ifx, int num)
{
    SOCKET_ADDRESS_LIST *slist=NULL;
    char                 buf[2048];
    DWORD                dwBytesRet;

    if(SOCKET_ERROR==WSAIoctl(s, SIO_ADDRESS_LIST_QUERY,NULL,0,buf,2048,&dwBytesRet,NULL,NULL)){
        MessageBox(NULL,"WSAIoctl(SIO_ADDRESS_LIST_QUERY) failed","Alert!",MB_OK);
        return -1;
    }
    slist=(SOCKET_ADDRESS_LIST *)buf;
    if(num>=slist->iAddressCount) return -1;
    ifx->sin_addr.s_addr=((SOCKADDR_IN *)slist->Address[num].lpSockaddr)->sin_addr.s_addr;

	return 0;
}

int CNetAdapter::GetAdapterList(char *buf)
{
    SOCKET               sock;
    //char                 buf[4096];
    DWORD                dwBytesRet;
    int                  ret;	

    sock=socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
    if(sock==SOCKET_ERROR) return 0;
    ret=WSAIoctl(sock,SIO_ADDRESS_LIST_QUERY,NULL,0,buf,4096,&dwBytesRet,NULL,NULL);
    if(ret==SOCKET_ERROR) return 0;
	//memcpy(slist,(SOCKET_ADDRESS_LIST *)&buf,sizeof(SOCKET_ADDRESS_LIST));
	closesocket(sock);
    return 1;	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -