模拟 CMD命令下的ipconfig

来源:互联网 发布:计算机算法特点 编辑:程序博客网 时间:2024/05/22 15:39
#include <winsock2.h>#include <Iphlpapi.h>#include <iostream>using namespace std;#pragma comment(lib, "Iphlpapi.lib")#pragma comment(lib, "ws2_32.lib")int main(){FIXED_INFO *pFinxedInfo= NULL;ULONG    ulOutBufLen;pFinxedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, sizeof( FIXED_INFO ) );ulOutBufLen = sizeof( FIXED_INFO );if( ERROR_BUFFER_OVERFLOW == GetNetworkParams( pFinxedInfo, &ulOutBufLen ) ) {GlobalFree( pFinxedInfo );pFinxedInfo = (FIXED_INFO *) GlobalAlloc( GPTR, ulOutBufLen );if (pFinxedInfo == NULL){cout<<"Error allocating memory for FIXED_INFO"<<endl;return 1; }}if(GetNetworkParams(pFinxedInfo, &ulOutBufLen)){cout<<"GetNetworkParams is failed"<<endl;return FALSE;}else{cout<<"Windows IP Configuration"<<endl;cout<<endl;cout<<"Host Name.......................:"<<pFinxedInfo->HostName<<endl;cout<<"Primary DNS Suffix..............:"<<pFinxedInfo->DomainName<<endl;cout<<"Node Type.......................:";switch (pFinxedInfo->NodeType){case BROADCAST_NODETYPE:cout<<"Broadcast"<<endl;break;case PEER_TO_PEER_NODETYPE:cout<<"Peer to peer"<<endl;break;case MIXED_NODETYPE:cout<<"Mixed"<<endl;break;case HYBRID_NODETYPE:cout<<"Hybrid"<<endl;break;default:cout<<"Unknown"<<endl;break;}cout<<"IP Routing Enabled..............:";if (pFinxedInfo->EnableRouting)cout<<"YES"<<endl;elsecout<<"NO"<<endl;cout<<"WINS Proxy Enabled..............:";if (pFinxedInfo->EnableProxy)cout<<"YES"<<endl;elsecout<<"NO"<<endl;}cout<<endl;IP_ADAPTER_INFO *IPInfo;DWORD dwBufferSize=0;IPInfo=(IP_ADAPTER_INFO *)malloc(sizeof(IP_ADAPTER_INFO));if(GetAdaptersInfo(IPInfo, &dwBufferSize)!=ERROR_BUFFER_OVERFLOW){cout<<"GetNetworkParams is failed"<<endl;return FALSE;}else{free(IPInfo);IPInfo=(IP_ADAPTER_INFO *)malloc(dwBufferSize);GetAdaptersInfo(IPInfo, &dwBufferSize);while(IPInfo!=NULL){cout<<"Ethernet adapter "<<IPInfo->Description<<endl;cout<<endl;cout<<"Connection-specific DNS Suffix..:"<<endl;cout<<"Description.....................:"<<IPInfo->Description<<endl;char szMacAddr[20];sprintf_s(szMacAddr, 20, "%02X-%02X-%02X-%02X-%02X-%02X", IPInfo->Address[0], IPInfo->Address[1], IPInfo->Address[2],IPInfo->Address[3], IPInfo->Address[4], IPInfo->Address[5]);cout<<"Physical Address................:"<<szMacAddr<<endl;cout<<"DHCP Enabled....................:";if(IPInfo->DhcpEnabled!=0)cout<<"YES"<<endl;elsecout<<"NO"<<endl;cout<<"IP Address................:.....:"<<IPInfo->IpAddressList.IpAddress.String<<endl;cout<<"Subnet Mask.....................:"<<IPInfo->IpAddressList.IpMask.String<<endl;cout<<"Default Gateway.................:"<<IPInfo->GatewayList.IpAddress.String<<endl;cout<<"DNS Servers.....................:"<<pFinxedInfo->DnsServerList.IpAddress.String<<endl;cout<<"                                :"<<pFinxedInfo->DnsServerList.Next->IpAddress.String<<endl;IPInfo=IPInfo->Next;cout<<endl;}}free(IPInfo);getchar();}

0 0