获取本地网络参数

#include   "stdafx.h"
#include   <stdlib.h>
#include   <stdio.h>
#include   "winsock2.h"
#include   "iphlpapi.h"
#include   <iostream>

#pragma   comment (   lib ,   "IPHLPAPI.lib"   )
#pragma   comment (   lib ,   "WS2_32.lib"   )

int   _tmain (   int   argc   ,   _TCHAR *   argv [])
{
        IP_ADAPTER_INFO *   pAdapterInfo   ;
        ULONG   ulOutBufLen   ;
        PIP_ADAPTER_INFO   pAdapter   ;

        //   获取本地适配器
        pAdapterInfo   = ( IP_ADAPTER_INFO   *) malloc   ( sizeof (   IP_ADAPTER_INFO ));
        ulOutBufLen   =   sizeof   (   IP_ADAPTER_INFO   );
        if (   GetAdaptersInfo   (   pAdapterInfo , &   ulOutBufLen   ) !=   ERROR_SUCCESS   )
     {
             free ( pAdapterInfo   );
             pAdapterInfo   = ( IP_ADAPTER_INFO   *) malloc   ( ulOutBufLen );
     }

        DWORD   dwRetVal   ;
        if (   dwRetVal   =   GetAdaptersInfo (   pAdapterInfo , & ulOutBufLen   ) !=   ERROR_SUCCESS   )
             std :: cout   << "GetAdaptersInfo Error " <<   dwRetVal << "\n"   ;

        //   显示本地适配器
        pAdapter   =   pAdapterInfo   ;
        while (   pAdapter   )
     {
             std :: cout   << "NetWork Adapter Name ___ " <<   pAdapter -> AdapterName   << "\n" ;
             std :: cout   << "NetWork Adapter Desc ___ " <<   pAdapter -> Description   << "\n" ;
             std :: cout   << "MAC is " ;
             for (   int   i   = 0;   i   <   pAdapter   -> AddressLength ; ++   i   )
          {
                 if (   i   == ( pAdapter ->   AddressLength   - 1))
                      printf (   "%.2X\n"   , ( int ) pAdapter   -> Address [   i ] );
                 else
                      printf (   "%.2X-"   , ( int ) pAdapter   -> Address [   i ] );
          }

             printf (   "IP ADDRESS:     \t\t%s\n"     pAdapter   -> IpAddressList .   IpAddress . String   );
             printf ( " subnet Mask:    \t\t%s\n"     pAdapter   -> IpAddressList .   IpMask . String   );
             printf ( " default getway: \t\t%s\n"     pAdapter   -> GatewayList .   IpAddress . String   );

             printf ( "*********************************************************************\n"   );

             if (   pAdapter   -> DhcpEnabled   )
          {
                 printf (   "   启用   DHCP:   \t\t   \n "   );
                 printf (   "DHCP   服务器   : \t\t%s\n" ,   pAdapter   -> DhcpServer .   IpAddress . String   );
          }
             else
                 printf (   "   启用   DHCP   \t\t   \n"   );

             pAdapter   =   pAdapter   -> Next ;
     }

        if (   pAdapterInfo   )
             free (   pAdapterInfo   );

        printf ( "\n\n"   );
        system ( "pause"   );
        return   0;
}
 


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值