我的渴望来自你的热情
解决方案 »
- 如何对vc里面media player播放的帧拍照成BMP图片文件
- 一个主窗口和一个子模态对话框的故事
- 请教下关于内存与文件映射的问题
- D3D使用Sprite制作2D界面的一个问题(关于改变窗口大小后Sprite的Draw尺寸发生了变化)
- 同一工程中,一个对话框引用另一个对话框中的变量!
- 如何在登陆时点Cancel退出
- 有几个问题,对于我这个新手很是棘手,那位大哥给个qq号以便请教?
- ListControl的使用方法!!
- 关于list 的问题!
- 请问如何清除CAsyncSocket的接收缓冲区..
- 最菜的问题:如何改变SDI程序主窗口的标题,即如何改变“无标题 - xxx(工程名)”这个东东?
- super easy问题。event, message, overridable之间有什么区别呀?
然后用gethostbyaddr获得该主机名
{
CString strTemp;
struct hostent *host; DWORD dwScope=RESOURCE_CONTEXT;
NETRESOURCE *NetResource=NULL;
HANDLE hEnum; WNetOpenEnumA(
dwScope,
NULL,
NULL,
NULL,
&hEnum); if (hEnum)
{
DWORD Count=0xFFFFFFFF;
DWORD BufferSize=2048;
LPVOID Buffer=new char[2048];
WNetEnumResourceA(
hEnum,
&Count,
Buffer,
&BufferSize);
NetResource = (NETRESOURCE*)Buffer; unsigned int i;
//---------------------------------------------
//从其中得到在lan里的可以连接的机器。
for(i=0;i<BufferSize/sizeof(NETRESOURCE);i++,NetResource++)
{
if (NetResource->dwUsage==RESOURCEUSAGE_CONTAINER && NetResource->dwType==RESOURCETYPE_ANY)
{
if (NetResource->lpRemoteName)
{
CString strFullName=NetResource->lpRemoteName;
if (0==strFullName.Left(2).Compare("\\\\"))
{
strFullName=strFullName.Right(strFullName.GetLength()-2);
host=gethostbyname(strFullName);
if (host==NULL)
{
continue;
}
strTemp.Format("%s",strFullName);
m_mlist.InsertItem(i,strTemp,0); //从计算机名得到对应的IP地址。
struct hostent *lpHostEnt= gethostbyname(strTemp);
LPSTR lpAddr=lpHostEnt->h_addr_list[0];
if (lpAddr)
{
struct in_addr inAddr;
memmove(&inAddr,lpAddr,4);
sIpAddr=inet_ntoa(inAddr);
} //写入一个ini文件中。
::WritePrivateProfileString(
"IPTOADD",
strTemp,
sIpAddr,
".\\ip.ini");
}
}
}
}
delete Buffer;
WNetCloseEnum(hEnum);
}}