ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: ming668

[已解决] 如何用VBA取得局域网上的计算机名[有新探讨]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2011-7-12 15:07 | 显示全部楼层
本帖已被收录到知识树中,索引项:其他编程应用
个vba也能做到啊??

TA的精华主题

TA的得分主题

发表于 2011-7-12 15:21 | 显示全部楼层
你好,我的局域网没有设IP这些。如何搞

TA的精华主题

TA的得分主题

发表于 2011-7-12 19:37 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个链接有VBA代码,可以扫描整个网段的ip和mac,不过貌似速度非常慢,如果对方没开机,或者ip没被使用,那么要等几秒钟,所以255个ip就要差不多十几分钟。
而且还是不能同时给出主机名和ip,加一一对应
http://zhidao.baidu.com/question ... dex=2&fr2=query

还不如ping+arp命令了

等我查一下微软的WMI对象可不可以。

哎,没用,WMI对象只能获得本机信息,其它主机还是要靠ping

目前还是要靠 .bat 然后读取 bat 生成的文本文件,只是。。。。。。什么命令可以列出主机名+IP呢?

哦,懂了 ping -a 192.168.0.1 -n 1 -w 1 这样就可以同时得到主机名+IP
然后靠 arp -a 就可以得到 IP + MAC
靠 net view 可以得到 主机名 + 网络解释名

把上面三样结果汇总,就得到 主机名+网络解释名+IP+MAC 的一一对应了

而且速度应该也很快。

有空再做了。。。。。。

[ 本帖最后由 灰袍法师 于 2011-7-12 20:29 编辑 ]

TA的精华主题

TA的得分主题

发表于 2011-7-12 22:56 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
法师,就是法师,谢谢辛苦了。

TA的精华主题

TA的得分主题

发表于 2011-7-12 23:36 | 显示全部楼层
好贴,关注中,希望能用VBA把局域网中的所有:
电脑名称、IP、登录用户、MAC等等都一一对应....

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-13 08:08 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
期待法师的成果!

TA的精华主题

TA的得分主题

发表于 2011-7-14 22:32 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-15 05:49 | 显示全部楼层
附件用VBA生成BAT,调用BAT,然后删除所有BAT及其运行结果。
用 ipconfig 取得本机IP
然后 ping 本机IP代表的网段 0-254
读取ping的结果,得到IP+主机名
再用 arp -a 得到IP+MAC
把上述资料整合就得到 IP+主机名+MAC了

速度慢关键是 ping 整个网络的每一个IP实在是要等好久。。。。。。

附件的加速方法是,生成255个bat,每个bat 负责 ping一个ip地址,同时运行这255个BAT,

这样才可以在一分钟内ping完。

不过运行255个bat需要大约 600MB内存,内存少的可以每个bat多ping几个IP,如10个
(修改Const PING_IP_IN_ONE_BAT As Long = 1 为 Const PING_IP_IN_ONE_BAT As Long =  10 即可)

新的附件应该可以正确处理 英文版和中文版的 ipconfig 和 ping 的输出结果,但是 arp -a命令也许不行,有待测试。。。。。。

不管三七二十一,这个附件把Ping运行的结果按关键字取出关键行,存放在D列。

哎,我现在发现最好的方法其实是登录路由器管理网页,然后提取网页数据,如我的路由器数据下:
DHCP客户端表
主机名称 IP地址 MAC地址 终止时间  
iPhone-137 192.168.0.101 18:E7:F4:EB:0F:88 2 日 21 小时 5 分钟 10 秒  
Pan-PC 192.168.0.100 00:21:5D:59:82:48 从不
Shirley-PC 192.168.0.102 2C:81:58:E3:11:8E 从不

[ 本帖最后由 灰袍法师 于 2011-7-24 00:07 编辑 ]

60秒获取局域网全部 主机名+IP+MAC - 兼容中英ping - 监测BAT结束 - 保留ping关键行.rar

26.09 KB, 下载次数: 474

TA的精华主题

TA的得分主题

发表于 2011-7-15 09:26 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2011-7-15 09:32 | 显示全部楼层
试了下,没有看到结果啊。我们局域网中电脑没有设置IP,是自动获取那种的。请大师把把脉。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-12-4 16:59 , Processed in 0.036874 second(s), 7 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表