?? 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 + -