Board logo

标题: [原创]VBS计算网络地址与广播地址 [打印本页]

作者: everest79    时间: 2008-11-6 20:36     标题: [原创]VBS计算网络地址与广播地址

通过wmi获取主机IP与掩码后计算得出主机上限(广播-1)与主机下限(网络+1)
经过修改可以利用win32_pingstatus来自动扫描局域网在线主机数
  1. IPAddress=InputBox("输入IP地址:")
  2. IPSubnet=InputBox("输入网络掩码:")
  3. 'IPAddress="192.168.3.55"
  4. 'IPSubnet="255.255.128.0"
  5. Address=split(ipaddress,".")
  6. Subnet=split(ipsubnet,".")
  7. For i = LBound(Address) To UBound(Subnet)
  8.     Hostbit=(Address(i) And Subnet(i))
  9.     IPBroad=IPBroad & (Subnet(i) Xor 255)+Hostbit & "."
  10.     IPHost=IPHost & Hostbit & "."
  11. Next
  12. Msgbox Left(IPBroad,Len(IPBroad)-1) & " " & Left(IPHost,Len(IPHost)-1)
复制代码

作者: rat    时间: 2008-11-7 19:30

兄可以稍微名词解释下
作者: Batcher    时间: 2008-11-7 20:43

要想对没有学过《计算机网络》等课程的人讲清楚这些概念,还真不容易,楼主加油了,呵呵。
作者: everest79    时间: 2008-11-8 07:16

我也是刚开始VBS中支持位运算的一些功能才写这个的,这个脚本根据IP与掩码计算网络大小,方便不怎么了解网络的人来编写扫描局域网的脚本

算是有四个名词,主机地址,网络掩码,子网地址,广播地址
主机地址指本机IP
网络掩码也是指本机的子网掩码
子网地址也叫网络地址
举个例子
如本机IP为192.168.0.77网络掩码为255.255.255.0那么网络地址就是192.168.0.0
如机机IP为192.168.1.64网络掩码为255.255.254.0那么网络地址还是192.168.0.0
广播地址在上边例子中第一个是192.168.0.255第二个是192.168.1.255

它们的计算公式是
子网地址=主机地址 And 网络掩码
广播地址=子网地址 Xor (Not 网络掩码)
由于我是将它们分开逐段计算的,因为取反Not会成为负数,所以采用了
广播地址=网络掩码 Xor 255 + 子网地址
其实就是255.255.255.255-当前网络掩码+网络地址




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2