以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  可以历遍局域网内的所有计算机么?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9434)

--  作者:lihe60
--  发布时间:2011/4/11 13:26:00
--  可以历遍局域网内的所有计算机么?

有类似的代码么?

for each a as computer in computers

代码

next

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

--  作者:狐狸爸爸
--  发布时间:2011/4/11 14:36:00
--  
呵呵,没有,可以去网上查查vb.net或C#是否可以,如果可以,Foxtable也可以。
[此贴子已经被作者于2011-4-11 14:36:47编辑过]

--  作者:lihe60
--  发布时间: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。


--  作者:狐狸爸爸
--  发布时间:2011/4/11 14:50:00
--  
是VB吗? 我怎么就看不懂呢。
--  作者:lihe60
--  发布时间:2011/4/11 15:21:00
--  
我是从网上拷下来的,具体意思,我是不懂的。
--  作者:wcs
--  发布时间:2011/4/11 22:57:00
--  

一定有的,可是我不懂!


--  作者:blackzhu
--  发布时间:2011/4/12 20:41:00
--  
string   UserIp   =   Request.UserHostAddress;   //获取用户IP
string   UserPcName   =   System.Net.Dns.Resolve(UserIp).HostName;   //根据IP获取用户电脑名
--  作者:lihe60
--  发布时间: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
--  发布时间:2011/4/13 8:58:00
--  
这个是否有帮助?
--  作者:lihe60
--  发布时间:2011/4/13 9:00:00
--  
http://topic.csdn.net/t/20040826/17/3312796.html