获取子网的广播地址

来源:互联网 发布:淘宝美工基础教程视频 编辑:程序博客网 时间:2024/04/30 00:58
头文件:

typedef struct taghqNetAddrInfo{DWORD dwIndex;DWORD dwAddr;DWORD dwMask;DWORD dwBCast;DWORD dwCalcBCast;}ThqNetAddrInfo;int GetNetAddrInfoBySocket(SOCKET sock,std::vector<ThqNetAddrInfo>& vtInfo);

CPP:

int GetNetAddrInfoBySocket(SOCKET sock,std::vector<ThqNetAddrInfo>& vtInfo){INTERFACE_INFO InterfaceList[20];unsigned long nBytesReturned;if (WSAIoctl(sock, SIO_GET_INTERFACE_LIST, 0, 0, &InterfaceList,sizeof(InterfaceList), &nBytesReturned, 0, 0) == SOCKET_ERROR) {cerr << "Failed calling WSAIoctl: error " << WSAGetLastError() <<endl;return 1;}int nNumInterfaces = nBytesReturned / sizeof(INTERFACE_INFO);ThqNetAddrInfo dwInfo;for (int i = 0; i < nNumInterfaces; ++i) {dwInfo.dwIndex = i;dwInfo.dwAddr = InterfaceList[i].iiAddress.AddressIn.sin_addr.s_addr;dwInfo.dwMask = InterfaceList[i].iiNetmask.AddressIn.sin_addr.s_addr;dwInfo.dwBCast = InterfaceList[i].iiBroadcastAddress.AddressIn.sin_addr.s_addr;dwInfo.dwCalcBCast = dwInfo.dwAddr&dwInfo.dwMask|~dwInfo.dwMask;vtInfo.push_back(dwInfo);}return nNumInterfaces;}


原创粉丝点击