MFC有没有提供获得本机网络连接状况的系统函数?
1、网线有没有插好
2、获取本机的IP,网关,DNS等信息
3、执行类似于Ping的网络命令
请提供源代码,不胜感激!!!PS:我对网络编程很白痴的

解决方案 »

  1.   

    你先看InternetGetConnectedState能不能满足你的要求,要是不行,那就要用到ip helper的函数,象其中的GetAdaptersAddresses,GetAdaptersInfo等等api一定能满足你这个简单的功能要求。你去看MSDN,里头说的很详细。
      

  2.   

    2、获取本机的IP,网关,DNS等信息GetAdaptersInfo
      

  3.   

    第二问已经解决,把我的代码贴出来吧:  
    //需要包含头文件<IPHlpApi.h>,和导入库Iphlpapi.lib
    PIP_ADAPTER_INFO adp = NULL;
    ULONG uLong=0;
    ::GetAdaptersInfo(adp,&uLong);
    adp = (PIP_ADAPTER_INFO)::GlobalAlloc(GPTR,uLong);
    if(::GetAdaptersInfo(adp,&uLong) == ERROR_SUCCESS)
    {
    if(adp != NULL)
    {
    //MessageBox(adp->AdapterName);//
    //MessageBox(adp->GatewayList.IpAddress.String);// 网关
    MessageBox(adp->IpAddressList.IpAddress.String);//IP
    }
            }
    可是怎么获得网线是否插好的状态呢??
      

  4.   

    DWORD   flags;//上网方式   
    //  BOOL     m_bOnline;//是否在线   
    //     
    //  m_bOnline=InternetGetConnectedState(&flags,0);   
    //  if(m_bOnline)//在线   
    //  {   
    //  switch(flags)   
    //  {   
    //  case   INTERNET_CONNECTION_MODEM   :   
    // 
    //  break;   
    //  case   INTERNET_CONNECTION_LAN   :   
    // 
    //  break;   
    //  case   INTERNET_CONNECTION_PROXY   :   
    // 
    //  break;   
    //  }   
    // 
    //  }   
    //  else   
    //  {
    //  AfxMessageBox("网络连接不可用,请检查网络连接!");
    //  return FALSE;
    //  }
      

  5.   

    都已经说的很清楚了,
    BOOL InternetGetConnectedState(
      LPDWORD lpdwFlags,
      DWORD dwReserved
    );
    如果lpdwFlags返回的是INTERNET_CONNECTION_OFFLINE 则没有连接