Форум программистов, компьютерный форум CyberForum.ru Форум программистов | Компьютерный форум | Форум web-программистов | Форум по электронике и бытовой технике | Форум о софте | Научный форум | Карьера и бизнес
CyberForum.ru - форум программистов и сисадминов > Форум Форум программистов > Форум Delphi > Форум Delphi и сети
Восстановить пароль Регистрация

Ответ Создать новую тему
 
11.02.2009, 11:27   #1
Diakon
Новичок
Регистрация: 11.02.2009
Сообщений: 5
Репутация: 0 (0)
Как определить IP компьютера в локальной доменной сети / Delphi и сети

Подскажите, плиз, как можно определить IP компа в домменной сети. Но! Для поиска ip надо использовать не имя компа (например, виндовозная команда ping -a имякомпа не подходит), а логин пользователя под которым он вошел в домен. Т.е. зная доменный логин мне надо найти IP компютера. Кто может подсказать как это сделать?
Заранее спасибо
11.02.2009, 11:27
AdAgent
Объявления
19.03.2010, 15:03   #2
violleta
Форумчанин
Регистрация: 29.01.2010
Сообщений: 100
Репутация: 0 (0)
Как определить IP компьютера в локальной доменной сети

Меня тоже интересует этот вопрос,так как меня определяют,и я хочу определять-)
Другие темы раздела
Delphi Подсчет траффика клиент-сервер
Господа, нужна помощь. Для начала: есть комп-сервер и несколько клиентских. У сервера выход в инет по кабелю. Остальные с ним связаны тоже через сетевые карты. Надо написать программу-клиент с кнопочкой "Включить интернет\отключить интернет", и программу-сервер, к которой должны подключаться...
Delphi Indy самые азы
Здрасте, чёт не могу разобраться с элементарными настройками:( перечтиал книгу глубины indy но она из тех книг которая становится понятной, когда и так уже знаешь... вобщем может дадите хорошую ссылку или помогите сделать простенькую прогу клиент с сервером в одной форме по нажатию кнопки...
19.03.2010, 15:16   #3
Андрей Борисови
Форумчанин
Регистрация: 04.10.2009
Сообщений: 1,679
Репутация: 706 (395)
Лучшие ответы: 6
Как определить IP компьютера в локальной доменной сети

Насколько я помню - в домене есть 2 вещи:
1. Имя компа
2. учетная запись (логин/пароль)

1-е вы можете легко узнать с другого компьютера, а вот чтобы узнать второе - у вас, как минимум, должны быть права администратора, чтобы сходить на сервер и получить от него список учетных записей и их ассоциацию по компьютеру...

Ну.. или троян, который будет при входе на комп в папку "общие доки" пихать файл с логином текущего пользователя .

а вы уже программно, из всей сети их собирать и читать
19.03.2010, 15:19   #4
violleta
Форумчанин
Регистрация: 29.01.2010
Сообщений: 100
Репутация: 0 (0)
Как определить IP компьютера в локальной доменной сети

Как узнать имя чужого компа?
Я выхожу на один форум,и знаю только НИК пользователя,чей IP меня интересует.
19.03.2010, 15:19
AdAgent
Объявления
19.03.2010, 15:22   #5
Андрей Борисови
Форумчанин
Регистрация: 04.10.2009
Сообщений: 1,679
Репутация: 706 (395)
Лучшие ответы: 6
Как определить IP компьютера в локальной доменной сети

Цитата Сообщение от violleta Посмотреть сообщение
Как узнать имя чужого компа?
не уверен, но можно программно опросить "сетевое окружение" и получить оттуда список компутеров с их именами
19.03.2010, 15:23   #6
violleta
Форумчанин
Регистрация: 29.01.2010
Сообщений: 100
Репутация: 0 (0)
Как определить IP компьютера в локальной доменной сети

но меня же вычисляет пользователь
19.03.2010, 15:23   #7
Андрей Борисови
Форумчанин
Регистрация: 04.10.2009
Сообщений: 1,679
Репутация: 706 (395)
Лучшие ответы: 6
Как определить IP компьютера в локальной доменной сети

Винда ведь именно так и делает)
19.03.2010, 15:27   #8
Андрей Борисови
Форумчанин
Регистрация: 04.10.2009
Сообщений: 1,679
Репутация: 706 (395)
Лучшие ответы: 6
Как определить IP компьютера в локальной доменной сети

вот смотрите:
Домен Как определить IP компьютера в локальной доменной сети

а вот компы домена с именами
Как определить IP компьютера в локальной доменной сети

т.е. винда априори их знает и показывает, значит точно есть WinApi команда или процедурка вывода имен компутеров из домена.
19.03.2010, 15:30   #9
violleta
Форумчанин
Регистрация: 29.01.2010
Сообщений: 100
Репутация: 0 (0)
Как определить IP компьютера в локальной доменной сети

Что мне нужно сделать,чтобы определить,я не понимаю настолько,чтобы воспользоваться этими табличками-)))
19.03.2010, 15:32   #10
Андрей Борисови
Форумчанин
Регистрация: 04.10.2009
Сообщений: 1,679
Репутация: 706 (395)
Лучшие ответы: 6
Как определить IP компьютера в локальной доменной сети / Delphi и сети

вот что нашел.

Код Delphi
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
Получить список компьютеров, подключенных к сети.
 
Святослав Ушаков
дата публикации 15-05-2000 00:00
Версия для печати 
unit NetUtils;
interface
uses Windows, Classes;
function GetContainerList(ListRoot:PNetResource):TList; Type
  {$H+}
   PNetRes = ^TNetRes;
   TNetRes = Record
             dwScope       : Integer;
             dwType        : Integer;
             dwDisplayType : Integer;
             dwUsage       : Integer;
             LocalName     : String;
             RemoteName    : String;
             Comment       : String;
             Provider      : String;
           End;
  {H-}
 
implementation
uses SysUtils;
 type
 PnetResourceArr = ^TNetResource; {TNetResource - это запись,
                      эквивалентная TNetRes, за исключением того, что
                      вместо типов string там типы PChar. }
 
 function GetContainerList(ListRoot:PNetResource):TList;
{возвращает список сетевых имён с подуровня ListRoot, каждый
элемент списка TList - это PNetRes, где поле RemoteName определяет
соответственно сетевое имя элемента списка. Если ListRoot=nil, то
возвращается самый верхний уровень типа:
1. Microsoft Windows Network
2. Novell Netware Network
Чтобы получить список доменов/рабочих групп сети Microsoft, нужно
вызвать эту функцию второй раз, передав ей в качестве параметра,
соответствующий элемент списка, полученного при первом её вызове.
Чтобы получить список компьютеров домена - вызвать третий раз...}
{Единственное, я не знаю как узнать имя текущего домена.}
Var
  TempRec     : PNetRes;
  Buf         : Pointer;
  Count,
  BufSize,
  Res         : DWORD;
  lphEnum     : THandle;
  p           : PNetResourceArr;
  i           : SmallInt;
  NetworkList : TList;
Begin
  NetworkList := TList.Create;
  Result:=nil;
  BufSize := 8192;
  GetMem(Buf, BufSize);
  Try
    Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
RESOURCEUSAGE_CONTAINER{0}, ListRoot,lphEnum);
    {в результате получаем ссылку lphEnum}
    If Res <> 0 Then Raise Exception(Res);
    Count := $FFFFFFFF; {требуем выдать столько записей в
список, сколько есть}
    Res := WNetEnumResource(lphEnum, Count, Buf, BufSize);
                 {в буфере Buf - списочек
                  в виде массива указателей на структуры типа TNetResourceArr
                  а в Count - число этих структур}
    If Res = ERROR_NO_MORE_ITEMS Then Exit;
    If (Res <> 0) Then Raise Exception(Res);
    P := PNetResourceArr(Buf);
    For I := 0 To Count - 1 Do
    Begin           //Требуется копирование из буфера, так как он
      New(TempRec); //действителен только до следующего  вызова функций группы
WNet
      TempRec^.dwScope := P^.dwScope;
      TempRec^.dwType := P^.dwType ;
      TempRec^.dwDisplayType := P^.dwDisplayType ;
      TempRec^.dwUsage := P^.dwUsage ;
      TempRec^.LocalName := StrPas(P^.lpLocalName);  {имеются  ввиду вот эти указатели}
      TempRec^.RemoteName := StrPas(P^.lpRemoteName); {в смысле  - строки PChar}
      TempRec^.Comment := StrPas(P^.lpComment);
      TempRec^.Provider := StrPas(P^.lpProvider);
      NetworkList.Add(TempRec);
      Inc(P);
    End;
    Res := WNetCloseEnum(lphEnum);
    {а следующий вызов - вот он!}
    If Res <> 0 Then Raise Exception(Res);
    Result:=NetWorkList;
    Finally
      FreeMem(Buf);
  End;
End;
end.
 
Пример:
 
uses NetUtils;
var
 List:TList;
begin
 List:=TList.Create;
 List:=GetContainerList(nil); // Получили список сетей.
                             //  Как правило первая - сеть Microsoft
 List:=GetContainerList(List[0]); //Получаем список доменов сети
 for i:=0 to List.Count-1 do
   if PNetRes(List[i])^.RemoteName='YourDomain' then
     begin
     List:=GetContainerList(List[i]);
     Break;
     end;
 // теперь в List - список включённых компьютеров
 // в домене/рабочей группе YourDomain. Каждый элемент списка имеет
 // тип PNetRes. Само имя компьютера можно получить List[i])^.RemoteName
 for i := 0 to List.Count-1 do
  writeln(PNetRes(List[i])^.RemoteName);
end.
(www.delphikingdom.com)

Добавлено через 1 минуту
после того, как вы определили нужный вам компьютер (можно узнать его IP) вам без прав администратора - никуды..
19.03.2010, 15:32
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Раздел Автор Дата
Статистика выключение компьютера по локальной сети - Администрирование Windows
Здравствуйте. 2 вопроса. Как можно выключить компьютер по локальной сети? На всех компах стоит windows 8 ))))) 8-) Есть ли возможность, чтобы автоматически создавался документ о статистике работе удалённого компьютера по локальной сети?
Администрирование Windows Aleksandr34 22.04.2013 22:53
Visual Basic .NET: Как узнать IP-адрес компьютера в локальной сети
Как программно узнать IP? То есть на форме есть кнопка и текстбокс, как сделать чтобы при нажатии на кнопку в на кнопку, в текстбоксе выводился IP адрес?
Visual Basic .NET TurboCoderS 04.02.2012 12:01
Windows XP: Мистическая работа компьютера в доменной сети!!
Приветствую всех на данном форуме! проблема такая, имеется 30 компов + сервер доменный и + удаленные серваки днс и прокси, все компы как вы поняли у меня в домене у всех присвоен дшсп у всех все норм все пингуется все открывается проблема только с одним компом , когда присваивается дшсп пинга к...
Windows XP Blade-Dancer 17.11.2011 13:40
Windows XP: Как задействовать DVD-rom другого компьютера по локальной сети?
Привет народ!Подскажите пожалуйста, у меня вот такая проблема!У меня дома 2 компа соединеных через роутер в локальную сеть!Оба компа в одной рабочей группе,также имеется общий доступ к файлам и папкам и устройствам.Я могу вставить например DVD диск на другом компе в DVD-rom и получаю к нему доступ...
Windows XP 0007 28.10.2011 18:48
Как с удаленного компьютера по модемному соединению быть равноценным членом локальной сети? - Теория и практика программирования
Не могли бы вы помочь. Суть дела такая – на первый взгляд простая, но на данный момент мной не решаемая. Существует два компьютера. Один из них является простым(не сервер) компьютером под управлением Вин2000 в локальной сети с установленном модемом на входящее соединение. Пытаюсь соединиться...
Теория и практика программирования Tom Sha 09.03.2011 23:33
Опции темы

Текущее время: 23:14. Часовой пояс GMT +4.

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