ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

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

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-19 10:33 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖已被收录到知识树中,索引项:其他编程应用
原帖由 灰袍法师 于 2011-7-18 18:44 发表
这个附件直接运行 net view ,不再需要bat了

但是要自己写代码处理 提取主机名的工作。


谢谢法师!OK啦,得到的数组赋给复合框也可以了(只是后边多了一些空行,能改最好,不改也不影响使用)。

TA的精华主题

TA的得分主题

发表于 2011-7-19 22:46 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
想要完美解决这个问题,还是要靠使用C++和NETBIOS接口编程,在全部计算机不关闭NETBIOS Over TCP/IP的情况下,使用NETBIOS广播功能立刻可以得到楼主所要的一切。

如果不使用NETBIOS,则想完美解决此问题,只有自己编写简单的UDP通讯程序(包括服务器与客户端),进行广播就可以了。

以上方法最好做成组件形式供楼主调用。

所有方法(包括你们前面讨论的方法),只对一个VLAN有效


1.JPG

使用调用外部命令的批处理方式,不可靠也不高明。

[ 本帖最后由 ljw990485 于 2011-7-19 22:54 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2011-7-20 08:50 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
原帖由 ljw990485 于 2011-7-19 22:46 发表
想要完美解决这个问题,还是要靠使用C++和NETBIOS接口编程,在全部计算机不关闭NETBIOS Over TCP/IP的情况下,使用NETBIOS广播功能立刻可以得到楼主所要的一切。
如果不使用NETBIOS,则想完美解决此问题,只有自己编写简单的UDP通讯程序(包括服务器与客户端),进行广播就可以了。
以上方法最好做成组件形式供楼主调用。
所有方法(包括你们前面讨论的方法),只对一个VLAN有效
...


1、我们公司电脑都是默认启用NETBIOS。
2、我有安装VS2008,但不会编程,只会一点点VBA,网上倒是能找到一些C++代码,但对于C++语言完全不懂的我来说,想要做成DLL,很多出错的地方都不懂得改,ljw990485能否给个代码或办法,如果能够做成组件再调用,应该会比调用外部命令更高效。
3、我只想在一个局域网内使用,而且是固定IP的,所以讨论的所有方法对我都适用。

TA的精华主题

TA的得分主题

发表于 2011-7-24 00:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
啊,我发现120HYH筒子一直无法运行BAT的原因,可能也是ming668所说过的,没有切换批处理的默认工作目录到当前工作簿的目录

要在Dim pids() As Long之前加一句,变成
ChDir ThisWorkbook.path & "\"
Dim pids() As Long

或者试一下这个附件,这个附件靠.EXE程序调用 SendARP ,不存在Ping 命令产生多种格式的问题。

由于Microsoft Visual Studio 编译的程序都需要 .NET framework 支持

本附件改用 wxDEV C++ 编译,我自己在windows7 64bit, XP 都测试过可以用了,附带源代码。

稳妥的话,先用命令行执行一次 sendarp.exe 看看能不能运行,再用 .xls 去调用比较好。

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

获取局域网全部 IP+MAC wxDEVC++.rar

143.07 KB, 下载次数: 301

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2011-7-24 11:13 | 显示全部楼层

谢谢老大。请看图。

不是不行,用了这个。获取局域网全部 IP+MAC.rar (44.34 KB)
DDDD.png
SSSSSSSS.png

TA的精华主题

TA的得分主题

发表于 2011-7-24 13:57 | 显示全部楼层
120HYH的电脑是公司的吧,连 .NET framework 2.0 都没有装

这倒是没办法了,MS VS2010无论如何都要扯上.NET framework,即使程序根本不需要,但还是会自动引用。

也许换一个编译器可以。

你再试一次28楼附件吧,我把以下改了,如果是这个问题的话现在应该可以运行了。

在Dim pids() As Long之前加一句,变成
ChDir ThisWorkbook.path & "\"
Dim pids() As Long

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

TA的精华主题

TA的得分主题

发表于 2011-7-24 15:05 | 显示全部楼层
是公司的电脑。哈哈。谢谢你了。

TA的精华主题

TA的得分主题

发表于 2011-7-24 15:09 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
28楼用了,还是不行。

TA的精华主题

TA的得分主题

发表于 2011-7-24 21:27 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
原帖由 120HYH 于 2011-7-24 15:09 发表
28楼用了,还是不行。


74楼附件已经更新

用wxDEV C++重新编译,不需要 .NET 支持了。

建议先用命令行执行 sendarp,如果可以获取指定IP的MAC,再运行.xls。

如果 .xls 运行失败,那么自己调试VBA,看看 myIP,myLAN 是不是正确

正确的话,假设你的IP是 192.168.0.3

那么 myIP 应该等于 "192.168.0.3"   myLAN应该等于 "192.168.0."

不正确的话就自己改VBA硬性指定这两个变量的值好了。

TA的精华主题

TA的得分主题

发表于 2011-7-25 09:55 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢法师了。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

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

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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