Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
adb420
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 487
1

Вывести имена компьютеров их ip адрес в локальной сети

19.10.2015, 16:41. Просмотров 2126. Ответов 10
Метки нет (Все метки)

Роясь на просторах форума нашел код, код выводит список имен всех компов в сети. мне необходимо что бы к имени компа выводился еще и ip адрес этого компа. возможно ли переделать, изменить и дописать код так, что бы осуществить это. то что нашел, прикреплю. очень прошу помощи. заранее благодарен.
0
Вложения
Тип файла: zip Получение имен комп сети.zip (32.5 Кб, 39 просмотров)
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2015, 16:41
Ответы с готовыми решениями:

Вывести имена компьютеров и ip-адресов в локальной сети
Необходимо вывести имена компьютеров и ip-адреса в локальной сети в ListBox Способ описанный здесь...

Как узнать IP-адрес компьютера в локальной сети
Как программно узнать IP? То есть на форме есть кнопка и текстбокс, как сделать чтобы при нажатии...

Получить MAC адрес компьютера в локальной сети по его имени
Срочно требуется помощь в данном вопросе, ибо машин много и подходить к каждой с листочком лень))

Как узнать ip-адрес всех компьютеров в локальной сети?
Добрый день ребята! хочу написать на Delphi что бы программа смотрел все компьютере локальная сеть...

Не видит имена компьютеров в сети
Здравствуйте.Помогите пожалуйста решить проблему. На работе имеется локальная сеть из нескольких...

10
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
19.10.2015, 21:14 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
Imports System.Net
Imports System.Net.Sockets
imports System.DirectoryServices
 
Public Partial Class MainForm
    Public Sub New()
        Me.InitializeComponent()
    End Sub
    
    
    Sub Button1Click(sender As Object, e As EventArgs)
        Dim parent As New DirectoryEntry("WinNT:")
        For Each dm As DirectoryEntry In parent.Children
            Dim coParent As New DirectoryEntry("WinNT://" & dm.Name)
            Dim dent As DirectoryEntries = coParent.Children
            dent.SchemaFilter.Add("Computer")
            For Each client As DirectoryEntry In dent
                listbox1.Items.Add(GetAddr(client.Name))
            Next
        Next
    End Sub
    
    Function GetAddr(byval cname As String) As String
                        Dim remoteHostEntry As IPHostEntry
                               remoteHostEntry = Dns.GetHostByName(cname)
                   Return remoteHostEntry.AddressList(0).ToString
        End Function
End class
1
adb420
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 487
20.10.2015, 09:47  [ТС] 3
_Лёша_,
у меня ругается на эту строчку...
vb.net
1
Imports System.DirectoryService
Error1.Namespace or type 'System.DirectoryServices' has already been imported.

библиотеку подключил. что еще надо сделать?
0
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
20.10.2015, 11:23 4
Ну все же ясно написано, пространство имен уже импортировано. У вас уже есть строка
vb.net
1
Imports System.DirectoryService
точнее целых 2 одинаковые.
0
adb420
4 / 4 / 1
Регистрация: 09.10.2013
Сообщений: 487
20.10.2015, 11:39  [ТС] 5
а теперь вот такая вот ошибка.
0
Миниатюры
Вывести имена компьютеров их ip адрес в локальной сети  
_Лёша_
386 / 375 / 22
Регистрация: 08.02.2011
Сообщений: 1,078
20.10.2015, 11:51 6
.NET Framework 4.6 and 4.5
0
Abber
18 / 18 / 3
Регистрация: 23.12.2015
Сообщений: 48
23.12.2015, 21:47 7
Дико извиняюсь, но у меня что-то странное с этой процедуркой...
Отлично работала только один день.
Теперь около 15сек думает над строкой 9, ничего не находит и выходит из For Each.

Сеть одноранговая, DIR-615, PC Win7U LAN, PC Win7U WiFi, PC W10 WiFi, RaspberyPi2 с XBMC KODI на WiFi.
Все PC друг-друга видят, шары доступны. Малина видна не всегда, но с неё компы видны и доступны.

Или лыжи не едут, или я ...
Где копать?
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub btScan_Click(sender As Object, e As EventArgs) Handles btScan.Click
        Me.Cursor = Cursors.AppStarting
        lbNet.Items.Clear()
        lbNet.Refresh()
        Dim objNetList, objNet, objComp As Object
        Dim xxx As New List(Of String)
        objNetList = GetObject("WinNT:")
        Dim tt = objNetList.GetType
        For Each objNet In objNetList
            objNet.Filter = ("Computer")
            For Each objComp In objNet
                Dim cname As String = objComp.name
                Dim caddr As String = GetAddr(cname)
                If caddr <> "" Then
                    xxx.Add(cname & "/" & caddr)
                    lbNet.Items.Add(Mid(cname & Space(15), 1, 15) & vbTab & caddr)
                End If
            Next
        Next
        Me.Cursor = Cursors.Default
    End Sub
0
Sklifosofsky
938 / 801 / 193
Регистрация: 29.09.2015
Сообщений: 956
23.12.2015, 23:05 8
10 строку поменяйте на
vb.net
1
objNet.Filter = New Object() {"Computer"}
А что с vb6 переписали? Тут есть вполне хороший рабочий пример
0
Abber
18 / 18 / 3
Регистрация: 23.12.2015
Сообщений: 48
23.12.2015, 23:22 9
Я уже все перепробовал.
А этот код работал

вот тут та-же песня
vb.net
1
2
3
4
5
6
7
8
9
10
11
12
Sub sc2_Click(sender As Object, e As EventArgs) Handles btSend.Click
 
        Dim parent As New DirectoryEntry("WinNT:")
        For Each dm As DirectoryEntry In parent.Children
            Dim coParent As New DirectoryEntry("WinNT://" & dm.Name)
            Dim dent As DirectoryEntries = coParent.Children
            dent.SchemaFilter.Add("Computer")
            For Each client As DirectoryEntry In dent
                lbNet.Items.Add(GetAddr2(client.Name))
            Next
        Next
    End Sub
Добавлено через 6 минут
vb.net
1
objNet.Filter = New Object() {"Computer"}
попробовал на всякий случай - нуль эффект
до фильтра дело не доходит
0
Sklifosofsky
938 / 801 / 193
Регистрация: 29.09.2015
Сообщений: 956
23.12.2015, 23:41 10
Abber, даж предложить нечего. А система какая у вас 7 или 10?

Добавлено через 3 минуты
А до этого процесс доходит?
vb.net
1
 Dim coParent As New DirectoryEntry("WinNT://" & dm.Name)
0
Abber
18 / 18 / 3
Регистрация: 23.12.2015
Сообщений: 48
23.12.2015, 23:55 11
В том то и дело, что нет.
Входит в цикл и ...
vb.net
1
For Each dm As DirectoryEntry In parent.Children
через 10 - 15 сек - End Sub

Что обидно - ничего вроде не делал, а работать перестало

З.Ы.
net view выдает ошибку 53
Не найден сетевой путь.

Раньше не проверял. Сеть работает.
0
23.12.2015, 23:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.12.2015, 23:55

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как получить имена компьютеров в сети?
Надоумьте, как получить имена всех компьютеров подключенных в настоящий момент к сети Microsoft?...

Как получить имена компьютеров в сети?
Нужно получить имена всех компьютеров подключенных в настоящий момент к сети Microsoft!

Подключение 2х компьютеров к локальной сети
Здраствуйте :) Извеняюсь если ненашел такоиже темы, поискал вроде нету. Немоглибы подсказать как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.