MFC中IPADDRESS控件的使用

来源:互联网 发布:kindlepc阅读软件 编辑:程序博客网 时间:2024/05/01 10:51

void CMyDlg::OnIPAddress()
{
 // 此段代码:独立的获取本机IP地址和计算机名
 WORD wVersionRequested;
 WSADATA wsaData;
 char name[255];
 CString ip;
 PHOSTENT hostinfo;
 wVersionRequested = MAKEWORD(2, 0);
   
 if (WSAStartup(wVersionRequested, &wsaData) == 0)
 {
 
    if(gethostname(name, sizeof(name)) == 0)
    {
  if((hostinfo = gethostbyname(name)) != NULL)
  {
   ip = inet_ntoa(*(struct in_addr *)*hostinfo->h_addr_list);
  }
    }  
    WSACleanup( );
 }   
 
 // AfxMessageBox(name);//name里是本机名
 // AfxMessageBox(ip);    //ip中是本机IP
 m_IPAddress = ip; // m_IPAddress是IP控件对应的变量,ip是Edit控件对应的变量
 // m_IP.SetAddress(255, 86, 255, 68); // 直接设置控件里显示的值
 // 本段代码:已知IP Address控件里显示的值,转换为CString格式
 /*
 // 下面代码实现:把IP Address控件里的值转化为 CString格式
 unsigned char *pIP;  
 CString strIP;  
 DWORD dwIP;  
 m_IP.GetAddress(dwIP); // m_IP为IP Address控件对应的变量  
 pIP = (unsigned   char*)&dwIP;  
 strIP.Format("%u.%u.%u.%u",*(pIP+3),   *(pIP+2),   *(pIP+1),   *pIP);
 MessageBox(strIP);*/
 /*
 // 下面代码实现:把IP Address控件里的值转化为 CString格式
 BYTE f0, f1, f2, f3;
 m_IP.GetAddress(f0, f1, f2, f3);
 CString m_addr;
 m_addr.Format("%d%s%d%s%d%s%d", f0, ".", f1, ".", f2, ".", f3);
 MessageBox(m_addr);*/
 /*
 // 下面代码实现:把IP Address控件里的值转化为 CString格式
 BYTE IPByte[4];
 m_IP.GetAddress(IPByte[0], IPByte[1], IPByte[2], IPByte[3]);
 CString strIP = "";
 char temp1[10], temp2[10], temp3[10], temp4[10];
 itoa(IPByte[0], temp1, 10);
 itoa(IPByte[1], temp2, 10);
 itoa(IPByte[2], temp3, 10);
 itoa(IPByte[3], temp4, 10);
 strIP += temp1;
 strIP += ".";
 strIP += temp2;
 strIP += ".";
 strIP += temp3;
 strIP += ".";
 strIP += temp4;
 MessageBox(strIP);*/
 /*
 // 下面代码实现:把IP Address控件里的值转化为 CString格式
 CString strx;
 m_IP.GetWindowText(strx);
 MessageBox(strx);*/
 // 此段代码:用获取的IP地址值,显示到对话框里IP Address控件中
 /* CString strIP;
 GetDlgItemText(IDC_EDIT_IPAddress, strIP);
 m_IP.SetWindowText(strIP);*/
 m_IP.SetWindowText(ip); // 把IP地址(CString类型)直接显示到IP Address控件中
   
 UpdateData(FALSE);
}

 

 

原创粉丝点击