VC++ IP地址

1、添加IP地址控件IDC_IPADDRESS和编辑框IDC_EDIT3。

2、窗体的OnInitDialog事件中加入如下代码,初始化地址。

CIPAddressCtrl* my_ip=(CIPAddressCtrl *)GetDlgItem(IDC_IPADDRESS);
my_ip->SetAddress(172,16,132,0);

3、给IP地址控件添加IPN_FIELDCHANGED事件,并加入如下代码:

CIPAddressCtrl* my_ip=(CIPAddressCtrl *)GetDlgItem(IDC_IPADDRESS);
BYTE f0, f1, f2, f3;
my_ip->GetAddress(f0, f1, f2, f3);
CString m_addr;
m_addr.Format("%d%s%d%s%d%s%d", f0, ".", f1, ".", f2, ".", f3);
this->SetDlgItemText(IDC_EDIT3,m_addr);


即可实现随着控件内IP地址修改 来在编辑框中显示IP


扩展:

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);
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值