枚举出局域网上所有网络资源
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下,此方法列出的资源和网络邻居列出的是一样,和网络邻居一样,有时列出的数据并不准确,可能会有一些域或机器不能找到。
↓相关文章:
- · 如何排除上网过程中所遇到的种种故障
- · 如何把木马注册为系统服务
- · SYN flood攻击的原理及其防御
- · IP地址含义知多少
- · 校园机房安装组建过程实战讲解
- · 构筑牢固的校园网络安全体系
- · 数字证书使用一点通
- · TCP/IP头格式
- · 使用VB实现邮箱自动注册
- · 端口截听实现端口隐藏嗅探与攻击
- · 从上传webshell到突破TCP/IP筛选到3389终端登陆
- · 五个反弹后门的源代码
- · 木马客户端与服务端隐蔽通讯解析
- · Hack新手一定要知道的问题
- · Do All in Cmd Shell (一切尽在命令行)
- · httpdoor---IIS后门
- · 135网络端口,禁用有巧招
- · 建立隐藏的超级用户多种方法
- · 狙击4899肉鸡
- · 告诉大家一个小技巧 一直没人提到过的东东
- · php注入之完全版
- · 千个常用DOS命令全面收藏
- · 如何提高Linux系统安全性的十大招数
- · 网站被入侵之后 需要做的检测
- · 通过PHP v4.0.2rc1-v4.0.7RC2 exploit program 拿到root
- · 下载软件勿忘防毒:嵌入式监控确保上网无忧
- · 详述光波分复用(WDM)技术(中篇)
- · 揭开网络
- · 资深网管教你彻底揪出Windows启动蛀虫
- · 用IDS(入侵检测系统)保卫数据库安全
- · 安全防御系统新趋势 IPS筛选八大定律
- · 通过注册表优化ADSL大法之Win XP篇
- · 消除上网的恐惧:用网上隐身衣保护自己
- · 脚本图片类后门病毒的完美使用方法
- · 局域网中受ARP欺骗攻击后的解决方法
- · 超级DIY WindowsXP登录界面自己做
- · 黑客攻击揭密-分析选定的网络攻击
- · 打破常规 构造特殊字符进行渗透入侵
- · 实用技巧:如何全面抵制黑客攻击
- · 木马“加/脱壳”的详细实现过程
- · 黑客横行的时代 URL地址都会说谎
- · 网管必知 路由器保护内网安全九大步骤
- · 入侵技巧 通过“鼠洞”控制你的电脑
- · 网管必知 严禁即时通信工具使用代理
- · 火眼金睛识木马 木马画皮伪装七计
- · 实例讲解 黑客入侵论坛各种手段大暴光
- · 互联网的巨大威胁 ICMP洪水攻击浅析
- · 查杀耗尽CPU资源的Explored病毒
- · CCNP路由精华7:在可扩展的网络中实施BGP
- · CCNP路由精华6:配置基本的边界网关协议
- · CCNP路由精华4:互连多个OSPF区域
- · CCNP路由精华5:配置EIGRP
- · CCNP路由精华3:在单个区域办配置OSPF
- · IE收藏夹也可以按名称排序
- · 网管必备 校园网的主动防护策略配置实例
- · Windows 2000/XP在局域网内批量升级
- · 黑客经常更改的系统配置文件及注册表
- · 底层安全——路由篇
- · 黑客实施攻击的步骤与方法
- · 关闭包藏祸心的危险端口

