怎么把一个整形转化成一个IP ADDRESS类型? 怎么把一个整形转化成一个IP ADDRESS类型?thanks! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 没人知道吗?那哪位知道怎么把一个IP ADDRESS得到的地址在CListCtrl控件上显示?? 那怎么把IP转换成CString类呢?谢谢,郁闷中!!!!!! //这是我获取和转化ip的方法,希望对你有帮助int CMyDlg::GetLocalIP(CString &strIPAddr){ char szHostName[256]; int nRetCode; nRetCode=gethostname(szHostName,sizeof(szHostName)); if(nRetCode!=0) { //产生错误 // szHostName = _T("没有取得"); return GetLastError(); } struct hostent FAR * lpHostEnt=gethostbyname(szHostName); if(lpHostEnt==NULL) { //产生错误 strIPAddr = _T(""); return GetLastError(); } //获取IP LPSTR lpAddr=lpHostEnt->h_addr_list[0]; if(lpAddr) { struct in_addr inAddr; memmove(&inAddr,lpAddr,4); //转换为标准格式 strIPAddr = inet_ntoa(inAddr); if(strIPAddr.IsEmpty()) strIPAddr = _T("没有取得"); } return 1;} struct in_addr inAddr;inAddr.S_un.S_addr = dwIpAddr; // 你的整数ip地址char *pIp = inet_ntoa(inAddr); BOOL Name2Ips(CString& strHostName,CUIntArray &aIp) //resolve a string ip or name to ip{ aIp.RemoveAll(); LPHOSTENT lpstHost = NULL; UINT nIp = inet_addr((LPCTSTR)strHostName);//is a IP address if (nIp == INADDR_NONE) { lpstHost = gethostbyname((LPCTSTR)strHostName);//is a Name if (!lpstHost) return FALSE; else for(int i = 0; lpstHost!= NULL && lpstHost->h_addr_list[i]!= NULL; i++ ) aIp.Add(*(UINT *)lpstHost->h_addr_list[i]); } else aIp.Add(nIp); return TRUE;}UINT String2Ip(LPCTSTR szHost){ CUIntArray aIp; if(Name2Ips(CString(szHost),aIp)) { return aIp[0]; } else return 0;}CString Ip2String(UINT nIp){ if(!nIp) return CString((LPCTSTR)NULL); //zero char buff[16]; sprintf(buff,"%d.%d.%d.%d",nIp%256,nIp/256%256,nIp/256/256%256,nIp/256/256/256); return CString(buff);} wmi method 參數問題 如何让密码不能粘贴?? 一个简单的语法问题,请各位高手回答,谢谢 VC数据类型转换 可不可以通过驱动程序的.dll直接操作硬件? 什么东西做help document 高分请教,已经用ocx向导做好ocx,如何把该ocx做成cab? 求助,一个有关tab control的问题 请问哪里有关于CMSComm的资料?(在线给分) MFC- CView类派生类构造函数访问属性问题 有关Video Capture的问题,大家进来看看,散分了!!!!!!!!!!!!!!! 如何通过ole db调用带参数的存储过程(在线,解决就送100分)
那哪位知道怎么把一个IP ADDRESS得到的地址在CListCtrl控件上显示??
int CMyDlg::GetLocalIP(CString &strIPAddr)
{
char szHostName[256];
int nRetCode;
nRetCode=gethostname(szHostName,sizeof(szHostName));
if(nRetCode!=0)
{
//产生错误
// szHostName = _T("没有取得");
return GetLastError();
} struct hostent FAR * lpHostEnt=gethostbyname(szHostName);
if(lpHostEnt==NULL)
{
//产生错误
strIPAddr = _T("");
return GetLastError();
}
//获取IP
LPSTR lpAddr=lpHostEnt->h_addr_list[0];
if(lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr,lpAddr,4);
//转换为标准格式
strIPAddr = inet_ntoa(inAddr);
if(strIPAddr.IsEmpty())
strIPAddr = _T("没有取得");
} return 1;
}
inAddr.S_un.S_addr = dwIpAddr; // 你的整数ip地址
char *pIp = inet_ntoa(inAddr);
{
aIp.RemoveAll(); LPHOSTENT lpstHost = NULL;
UINT nIp = inet_addr((LPCTSTR)strHostName);//is a IP address
if (nIp == INADDR_NONE)
{
lpstHost = gethostbyname((LPCTSTR)strHostName);//is a Name
if (!lpstHost)
return FALSE;
else
for(int i = 0; lpstHost!= NULL && lpstHost->h_addr_list[i]!= NULL; i++ )
aIp.Add(*(UINT *)lpstHost->h_addr_list[i]);
}
else
aIp.Add(nIp);
return TRUE;
}
UINT String2Ip(LPCTSTR szHost)
{
CUIntArray aIp;
if(Name2Ips(CString(szHost),aIp))
{
return aIp[0];
}
else
return 0;
}
CString Ip2String(UINT nIp)
{
if(!nIp)
return CString((LPCTSTR)NULL); //zero
char buff[16];
sprintf(buff,"%d.%d.%d.%d",nIp%256,nIp/256%256,nIp/256/256%256,nIp/256/256/256);
return CString(buff);
}