社区
网络编程
帖子详情
高分求救!~!~如何编程实现查找局域网内其它主机的IP和主机名????
cxn0808
2003-05-11 11:28:36
吾正在用VC编写一点对点聊天程序,连接时要求输入对方IP,现在我要通过函数调用实现局域网内的其它主机的IP和主机名,但苦于实在找不到相应的函数,希望名位高手能帮小弟一把!~!~!谢谢先了!~!~!
...全文
171
2
打赏
收藏
高分求救!~!~如何编程实现查找局域网内其它主机的IP和主机名????
吾正在用VC编写一点对点聊天程序,连接时要求输入对方IP,现在我要通过函数调用实现局域网内的其它主机的IP和主机名,但苦于实在找不到相应的函数,希望名位高手能帮小弟一把!~!~!谢谢先了!~!~!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
huangbeyond
2003-05-12
打赏
举报
回复
(转贴)
枚举出局域网上所有网络资源
MicroSoft提供了以下几个API:WnetOpenEnum、WnetEnumResource、WNetCloseEnum及一个结构类型NETRESOURCE用于搜索局域网上的网络资源。
其中NETRESOURCE的定义如下:
typedef struct _NETRESOURCE { // nr
DWORD dwScope;
DWORD dwType;
DWORD dwDisplayType;
DWORD dwUsage;
LPTSTR lpLocalName;
LPTSTR lpRemoteName;
LPTSTR lpComment;
LPTSTR lpProvider;
} NETRESOURCE;
我们主要用到是dwType(资源类型:磁盘或打印机)、dwDisplayType(资源类型:服务器,域等)、dwUsage(判断是不是容器c o ntainer)、lpRemoteName(资源名称)。
WnetOpenEnum的作用是打开某一特定的资源容器句柄给WnetEnumResource。WnetEnumResource枚举出指定容器下所有网络资源。
下面是一个列出所有网络资源的的函数示例:
bool __fastcall TForm1::EnumerateFunc(HWND hwnd ,LPNETRESOURCE lpnr,TTreeNode * ParentNode)
{
DWORD dwResult, dwResultEnum;
HANDLE hEnum;
DWORD cbBuffer = 16384; /* 16K is reasonable size */
DWORD cEntries = 0xFFFFFFFF; /* enumerate all possible entries */
LPNETRESOURCE lpnrLocal; /* pointer to enumerated structures */
DWORD i;
dwResult = WNetOpenEnum(RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0, /* enumerate all resources */
lpnr, /* NULL first time this function is called */
&hEnum); /* handle to resource */
if (dwResult ==67) //domain下没有可访问的主机
return true;
if (dwResult != NO_ERROR ) { //无
ShowError(dwResult);
return false;
}
TTreeNode * Child;
do {
lpnrLocal = (LPNETRESOURCE) GlobalAlloc(GPTR, cbBuffer);
dwResultEnum = WNetEnumResource(hEnum, /* resource handle */
¢ries, /* defined locally as 0xFFFFFFFF */
lpnrLocal, /* LPNETRESOURCE */
&cbBuffer); /* buffer size */
if (dwResultEnum == NO_ERROR) {
for(i = 0; i < cEntries; i++) {
Child=TreeView1->Items->AddChild(ParentNode,lpnrLocal[i].lpRemoteName);
if(RESOURCEUSAGE_c o nTAINER ==
(lpnrLocal[i].dwUsage & RESOURCEUSAGE_c o nTAINER))
if(!EnumerateFunc(this->Handle, &lpnrLocal[i],Child))
ShowMessage("EnumerateFunc returned FALSE.");
}
}
else if (dwResultEnum != ERROR_NO_MORE_ITEMS) {
ShowError(dwResultEnum);
break;
}
}
while(dwResultEnum != ERROR_NO_MORE_ITEMS);
GlobalFree((HGLOBAL) lpnrLocal);
dwResult = WNetCloseEnum(hEnum);
if(dwResult != NO_ERROR) {
ShowError(dwResult);
return FALSE;
}
return true;
}
需要说明在win98下,此方法列出的资源和网络邻居列出的是一样,和网络邻居一样,有时列出的数据并不准确,可能会有一些域或机器不能找到。
resound
2003-05-12
打赏
举报
回复
在SDK中就有啊
WNetOpenEnum (RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,pNetResource,&hEnum);
WNetEnumResource( hEnum, &Count, Buffer, &BufferSize );
一步一步地调用上面的枚举函数可依次找到网络邻居的主机名,
再根据主机名用gethostbyname(..)得到其IP.
树莓派3核心升级解析:板载Wi-Fi与64位处理器如何重塑嵌入式开发体验
在嵌入式开发与创客领域,单板计算机的核心价值在于平衡性能、功耗与连接性。ARM架构处理器作为主流选择,其从32位向64位的演进不仅提升了内存寻址能力,也为复杂计算任务提供了更好的指令集支持。板载无线连接模块(如Wi-Fi与蓝牙)的集成,则从根本上简化了设备联网与外围扩展的工程实践,大幅降低了物联网网关、智能家居控制中心等项目的原型开发门槛。树莓派3(Raspberry Pi 3 Model B)正是这一技术理念的典范,它通过内置802.11n Wi-Fi、蓝牙4.1以及ARMv8四核处理器,在保持经典接口与
【信息科学与工程学】【通信工程】【企业网、园区网、数据中心、广域网】各类业务网络及其网络演算算法
企业网络是一个复杂的系统,其业务、人员、流量和安全特征相互交织。下面这张表格梳理了这些核心特征及其关联的数学模型,帮你先建立整体概念。特征维度核心特征关联数学模型/方法业务特征多样性、服务等级协议、混合云趋势图论(拓扑优化)、排队论(M/M/1)、随机过程(业务到达)、优化理论(资源调度)人员特征角色权限差异、访问行为随机性、安全意识差异概率统计(行为建模)、随机过程(会话生成)、博弈论(安全策略)、访问控制矩阵流量特征混合性、突发性、时空规律性、方向性(南北/东西向)泊松过程(短时突发)、重尾分布(
【信息科学与工程学】【安全领域】第一百四十二篇 零信任网络解决方案中的算法04
对于节点 i, 有功和无功功率平衡方程为: Pi=Vi∑j=1NVj(Gijcosθij+Bijsinθij), Qi=Vi∑j=1NVj(Gijsinθij−Bijcosθij)。下风向某点 (x,y,z)的浓度 C为: C=2πuσyσzQexp(−2σy2y2)[exp(−2σz2(z−H)2)+exp(−2σz2(z+H)2)], 其中 Q是源强, u是风速, H是有效源高, σy,σz是水平和垂直扩散参数。
产业园区运营负责人如何高效对接企业技术需求与科研资源?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
Docker Desktop 4.85.0 Installer X64.exe
Docker Desktop 4.85.0 Installer X64.exe
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章