//*************************************
WORD wVersionRequested;
WSADATA wsaData;
if( WSAStartup(wVersionRequested,&wsaData) == 0)
{
struct hostent * phost;
if((phost = gethostbyname(""))!=NULL)
m_computername = (CString)phost->h_name;
WSACleanup();
}
//*************************************得当前主机名
WORD wVersionRequested;
WSADATA wsaData;
if( WSAStartup(wVersionRequested,&wsaData) == 0)
{
struct hostent * phost;
if((phost = gethostbyname(""))!=NULL)
m_computername = (CString)phost->h_name;
WSACleanup();
}
//*************************************得当前主机名
解决方案 »
- VC调用PTalk时总出现“另一个程序正在运行中”有“切换到”“重试”选项
- 如何获得鼠标拖动的网页链接?
- 多线程下载!
- 我发觉VC++写界面非常麻烦?VC高手们,有没有什么方法可以写界面可以简单一点的呀?
- 一个有关定时器的小问题,一直没想明白,请指教
- 如何在CList Box中設置column?
- 如何直接从网卡上读取(截获)网卡收到的所有ip包?(思路,例子,书籍,参考材料...) [email protected]
- 怎样恢复文件?急急急。请高手支招。
- 求教从variant类型到cstring类型的转换方法
- 如果做了一个软件,怎样把它上载到下载网站上
- 是声卡的问题吗?谢谢
- 判斷軟區是否存在的方法:1,2,3
以上得代码编译是成功的。
2.在应用类InitInstance()中加入初始化:AfxSocketInit();void CDevDataDlg::OnBnClickedButton1()
{
// TODO:在此添加控件通知处理程序代码 CString m_IP,m_FullName;
char m_HostName[256];
struct hostent *hp; gethostname((char*)m_HostName,255);
hp=gethostbyname(m_HostName);
if(hp==NULL)
{
AfxMessageBox("读取主机IP地址错误!");
return;
}
for(int i=0;hp->h_addr_list[i]!=NULL;i++)
{
for(int j=0;j<hp->h_length;j++)
{
CString addr;
if(j>0)
m_IP+=".";
addr.Format("%u",(unsigned int)((unsigned char*)hp->h_addr_list[i])[j]);
m_IP+=addr;
}
} int addr=inet_addr(m_IP);
hp=gethostbyaddr((char*)&addr,4,AF_INET);
if(hp==NULL)
{
AfxMessageBox("读取主机名错误!");
return;
}
sprintf(m_HostName,"%s",hp->h_name);
m_FullName.SetString(m_HostName); for(i=0;i<(int)strlen(m_HostName);i++)
{
if(m_HostName[i]=='.')
{
m_HostName[i]=NULL;
break;
}
}
CString temp;
temp.Format("IP地址为:%s\n\r主机名为:%s\n\r全 名 为:%s ",m_IP,m_HostName,m_FullName);
AfxMessageBox(temp);
}
运行结果为:
IP地址为:192.168.198.7
主机名为:ADMIT06
全 名 为:ADMIT06.ncvillas.com