📄 netadapter.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 + -