Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Соседние компы Добавлено: 27.07.10 13:38  

Автор вопроса:  I'm
Ребят, подскажите как получить имена соседних компов по сети...Ну вобщем всю не самую тягомостную инфу о компах соседей :), если это возможно конечно..
  
Имена компов, Имена пользователей, Версии Винды, Ip адреса, MAC адреса
 

Если нельзя всех скопом - то хотя бы одного (пользователя), ну или нескольких..
Спс

Ответить

  Ответы Всего ответов: 16  

Номер ответа: 1
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #1 Добавлено: 27.07.10 14:08
а пароли от всех акков на каждом компе не нужно? у меня как раз такой примерчик имеется

Ответить

Номер ответа: 2
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #2 Добавлено: 27.07.10 14:09
давай если не жалко :) а если серьезно .... эту инфо так сложно выяснить чтоли?

Ответить

Номер ответа: 3
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #3 Добавлено: 27.07.10 14:10
хотя бы - имена и айпи

Ответить

Номер ответа: 4
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #4 Добавлено: 27.07.10 14:30
я бы сказал, ТОЛЬКО имена и компы.
  1.  
  2. Public Class WorkGroup
  3.  
  4. #Region "APIs"
  5.     Private Declare Unicode Function NetServerEnum Lib "netapi32.dll" (ByVal Servername As IntPtr, ByVal Level As Int32, ByRef bufptr As IntPtr, ByVal PrefMaxLen As Int32, ByRef entriesread As Int32, ByRef TotalEntries As Int32, ByVal serverType As Int32, ByVal Domain As IntPtr, ByVal ResumeHandle As IntPtr) As Int32
  6.     Private Declare Unicode Function NetApiBufferFree Lib "netapi32.dll" (ByRef buffer As IntPtr) As Int64
  7.  
  8.     Private Structure _SERVER_INFO_100
  9.         Friend sv100_platform_id As Int32
  10.         <MarshalAs(UnmanagedType.LPWStr)> Friend sv100_name As String
  11.     End Structure
  12.  
  13.     Private Shared Function GetNetworkComputers() As ArrayList
  14.         Const MAX_PREFERRED_LENGTH As Int32 = -1
  15.         Dim networkComputers As New ArrayList()
  16.         Dim SV_TYPE_WORKSTATION As Int32 = 1, SV_TYPE_SERVER As Int32 = 2
  17.         Dim buffer As IntPtr = IntPtr.Zero, tmpBuffer As IntPtr = IntPtr.Zero
  18.  
  19.         Dim entriesRead, totalEntries, resHandle As Int32
  20.         Dim sizeofINFO = Marshal.SizeOf(GetType(_SERVER_INFO_100))
  21.  
  22.         Try
  23.             Dim ret = NetServerEnum(Nothing, 100, buffer, MAX_PREFERRED_LENGTH, entriesRead, totalEntries, SV_TYPE_WORKSTATION Or SV_TYPE_SERVER, Nothing, resHandle)
  24.  
  25.             If ret = 0 Then
  26.                 For i = 0 To totalEntries - 1
  27.                     tmpBuffer = New IntPtr(CType(buffer, Int32) + (i * sizeofINFO))
  28.                     Dim svrInfo = CType(Marshal.PtrToStructure(tmpBuffer, GetType(_SERVER_INFO_100)), _SERVER_INFO_100)
  29.  
  30.                     networkComputers.Add(svrInfo.sv100_name)
  31.                 Next
  32.             End If
  33.         Catch ex As Exception
  34.             'Console.WriteLine("Error getting network computers.")
  35.         Finally
  36.             NetApiBufferFree(buffer)
  37.         End Try
  38.  
  39.         Return networkComputers
  40.     End Function
  41. #End Region
  42.  
  43.     Public Shared Function GetAllComputers() As IEnumerable(Of String)
  44.         Dim networkComps = GetNetworkComputers()
  45.         Return From iComp As String In networkComps Where iComp.Trim <> "" Select iComp
  46.     End Function
  47.  
  48.     Public Shared Function DNS_to_IP(ByVal DNS As String) As Net.IPAddress
  49.         Return System.Net.Dns.GetHostEntry(DNS).AddressList.Where(Function(T) Not T.ToString.Contains(":")).First
  50.     End Function
  51. End Class

Ответить

Номер ответа: 5
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #5 Добавлено: 27.07.10 14:33
GetAllComputers() по идее можно сократить до:

  1. Return GetNetworkComputers.Where(Funtion (T) T.Trim <> "")

Ответить

Номер ответа: 6
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #6 Добавлено: 27.07.10 15:14
бошие спасибульки...значит внутренними средствами не как, жаль

Ответить

Номер ответа: 7
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #7 Добавлено: 27.07.10 16:22
И внутренними можно.

Ответить

Номер ответа: 8
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #8 Добавлено: 27.07.10 16:39
AgentFire
ну собственно это я и спрашивал! Можешь подсказать как "внутренними" это сделать?

хотя бы в какую сторону пИсать

Ответить

Номер ответа: 9
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #9 Добавлено: 27.07.10 19:10
пИсай всегда налюдях, и против ветра - гарантированно не будет скучно.
  1.     Sub Main()
  2.         Dim root As New DirectoryEntry("WinNT:")
  3.         Dim parent As System.DirectoryServices.DirectoryEntries
  4.         parent = root.Children
  5.         Dim d As DirectoryEntries = parent
  6.         For Each complist As DirectoryEntry In parent
  7.             For Each c As DirectoryEntry In complist.Children
  8.                 If (c.Name <> "Schema") Then
  9.                     Console.WriteLine(c.Name)
  10.                 End If
  11.             Next
  12.         Next
  13.     End Sub

Ответить

Номер ответа: 10
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #10 Добавлено: 27.07.10 20:02
спасибульки

Ответить

Номер ответа: 11
Автор ответа:
 I'm



Вопросов: 9
Ответов: 35
 Профиль | | #11 Добавлено: 27.07.10 20:06
чет не вкурю....
Что класс твой сплашные ошибки выдавал, что внутренние средства...тоесть этот модуль
  1. Sub Main()
  2.  
  3.         Dim root As New DirectoryEntry("WinNT:")
  4.  
  5.         Dim parent As System.DirectoryServices.DirectoryEntries
  6.  
  7.         parent = root.Children
  8.  
  9.         Dim d As DirectoryEntries = parent
  10.  
  11.         For Each complist As DirectoryEntry In parent
  12.  
  13.             For Each c As DirectoryEntry In complist.Children
  14.  
  15.                 If (c.Name <> "Schema") Then
  16.  
  17.                     Console.WriteLine(c.Name)
  18.  
  19.                 End If
  20.  
  21.             Next
  22.  
  23.         Next
  24.  
  25.     End Sub
  26.  



мож че импортировать надо?

Ответить

Номер ответа: 12
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #12 Добавлено: 27.07.10 23:02
Какие ошибки? Телепаты в отпуске...

Импортировать что-то надо, я думаю, как минимум System.DirectoryServices

Ответить

Номер ответа: 13
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #13 Добавлено: 28.07.10 07:26
и, как максимум, тоже, в принципе ..

Ответить

Номер ответа: 14
Автор ответа:
 Skywalker



ICQ: 300-70-6пятьЪ 

Вопросов: 62
Ответов: 545
 Web-сайт: iSkywalker.ru
 Профиль | | #14
Добавлено: 28.07.10 11:25
я думаю шутка юмора в том, что у него vb6

Ответить

Номер ответа: 15
Автор ответа:
 AgentFire



ICQ: 192496851 

Вопросов: 75
Ответов: 3178
 Профиль | | #15 Добавлено: 28.07.10 11:29
будет весьма печально и весьма забавно одновременно :-D

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам