Foxtable(狐表)用户栏目专家坐堂 → 可以历遍局域网内的所有计算机么?


  共有13213人关注过本帖树形打印复制链接

主题:可以历遍局域网内的所有计算机么?

帅哥哟,离线,有人找我吗?
lihe60
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
可以历遍局域网内的所有计算机么?  发帖心情 Post By:2011/4/11 13:26:00 [显示全部帖子]

有类似的代码么?

for each a as computer in computers

代码

next

[此贴子已经被作者于2011-4-11 13:28:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/4/11 14:47:00 [显示全部帖子]

@echo OFF 
if %~n0==arp exit
if %~n0==Arp exit
if %~n0==ARP exit
echo 正在获取本机信息.....
arp -d
:IP
FOR /f "skip=13 tokens=15 usebackq " %%i in (`ipconfig /all`) do Set IP=%%i && GOTO MAC
:MAC
echo IP:%IP%
FOR /f "skip=13 tokens=12 usebackq " %%i in (`ipconfig /all`) do Set MAC=%%i && GOTO GateIP
:GateIP
echo MAC:%MAC%
arp -s %IP% %MAC%
echo 正在获取网关信息.....
FOR /f "skip=17 tokens=13 usebackq " %%i in (`ipconfig /all`) do Set GateIP=%%i && GOTO GateMac
:GateMac
echo IP:%GateIP%
FOR /f "skip=3 tokens=2 usebackq " %%i in (`arp -a %GateIP%`) do Set GateMAC=%%i && GOTO Start
:Start
echo MAC:%GateMAC%
arp -s %GateIP% %GateMAC%
echo 操作完成!!!
exit

 

 

这是vb,还需要贺老师转换成foxtable。


 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/4/11 15:21:00 [显示全部帖子]

我是从网上拷下来的,具体意思,我是不懂的。

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/4/13 8:58:00 [显示全部帖子]

===================枚举局域网上的所有计算机====================
Dim     p_lngRtn     As     Long
Dim     p_lngEnumHwnd     As     Long
Dim     p_lngCount     As     Long
Dim     p_lngLoop     As     Long
Dim     p_lngBufSize     As     Long
Dim     p_atypNetAPI(0     To     MAX_RESOURCES)     As     NETRESOURCE,     p_atypNetAPI1(0     To     MAX_RESOURCES)     As     NETRESOURCE
Dim     groupuser
p_lngEnumHwnd     =     0&
p_lngRtn     =     WNetOpenEnum(dwScope:=RESOURCE_GLOBALNET,     dwType:=RESOURCETYPE_ANY,     dwUsage:=RESOURCEUSAGE_ALL,     lpNetResource:=ByVal     0&,     lppEnumHwnd:=p_lngEnumHwnd)
If     p_lngRtn     =     NO_ERROR     Then
    p_lngCount     =     RESOURCE_ENUM_ALL
    p_lngBufSize     =     UBound(p_atypNetAPI)     *     Len(p_atypNetAPI(0))
    p_lngRtn     =     WNetEnumResource(pEnumHwnd:=p_lngEnumHwnd,     lpcCount:=p_lngCount,     lpBuffer:=p_atypNetAPI(0),     lpBufferSize:=p_lngBufSize)
End     If
If     p_lngEnumHwnd     <>     0     Then
    Call     WNetCloseEnum(p_lngEnumHwnd)
End     If
p_lngRtn     =     WNetOpenEnum(dwScope:=RESOURCE_GLOBALNET,     dwType:=RESOURCETYPE_ANY,     dwUsage:=RESOURCEUSAGE_ALL,     lpNetResource:=p_atypNetAPI(0),     lppEnumHwnd:=p_lngEnumHwnd)
If     p_lngRtn     =     NO_ERROR     Then
    p_lngCount     =     RESOURCE_ENUM_ALL
    p_lngBufSize     =     UBound(p_atypNetAPI)     *     Len(p_atypNetAPI(0))
    p_lngRtn     =     WNetEnumResource(pEnumHwnd:=p_lngEnumHwnd,     lpcCount:=p_lngCount,     lpBuffer:=p_atypNetAPI(0),     lpBufferSize:=p_lngBufSize)
    If     p_lngCount     >     0     Then
        For     p_lngLoop     =     0     To     p_lngCount     -     1
            p_lngRtn     =     WNetOpenEnum(dwScope:=RESOURCE_GLOBALNET,     dwType:=RESOURCETYPE_ANY,     dwUsage:=RESOURCEUSAGE_ALL,     lpNetResource:=p_atypNetAPI(p_lngLoop),     lppEnumHwnd:=p_lngEnumHwnd)
            If     p_lngRtn     =     NO_ERROR     Then
                p_lngCount     =     RESOURCE_ENUM_ALL
                p_lngBufSize     =     UBound(p_atypNetAPI)     *     Len(p_atypNetAPI1(0))
                p_lngRtn     =     WNetEnumResource(pEnumHwnd:=p_lngEnumHwnd,     lpcCount:=p_lngCount,     lpBuffer:=p_atypNetAPI1(0),     lpBufferSize:=p_lngBufSize)
                If     p_lngCount     >     0     Then
                    Dim     i
                    For     i     =     0     To     p_lngCount     -     1
                        '------------------------如计算机机名不同本机名刚加入列表中------------------------------
                        groupuser     =     PointerToAsciiStr(p_atypNetAPI1(i).pRemoteName)
                        If     Right(groupuser,     Len(groupuser)     -     2)     <>     computername     Then
                            If     lsv1.FindItem(Right(groupuser,     Len(groupuser)     -     2))     Is     Nothing     Then
                                lsv1.ListItems.Add     lsv1.ListItems.Count     +     1,     ,     Right(groupuser,     Len(groupuser)     -     2),     ,     2
                            Else
                                If     lsv1.FindItem(Right(groupuser,     Len(groupuser)     -     2)).SubItems(3)     <>     " "     Then
                                    lsv1.FindItem(Right(groupuser,     Len(groupuser)     -     2)).SmallIcon     =     1
                                End     If
                            End     If
                        End     If
                    Next     i
                End     If
            End     If
        Next     p_lngLoop
    End     If
End     If
If     p_lngEnumHwnd     <>     0     Then
    Call     WNetCloseEnum(p_lngEnumHwnd)
End     If

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/4/13 8:58:00 [显示全部帖子]

这个是否有帮助?

 回到顶部
帅哥哟,离线,有人找我吗?
lihe60
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6887 积分:43621 威望:0 精华:0 注册:2009/3/2 14:07:00
  发帖心情 Post By:2011/4/13 9:00:00 [显示全部帖子]

http://topic.csdn.net/t/20040826/17/3312796.html

 回到顶部