Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Вниз

ip адресс   Найти похожие ветки 

 
Viktor   (2004-05-23 15:46) [0]

доброго времени суток.
подскажите пожалуйста, как получить ip адреса компов в локальной сети.
заранее признателен за помошь


 
BiN ©   (2004-05-24 10:49) [1]

Можно воспользоваться NetServerEnum для получения имен компьютеров. А затем по списку пройтись gethostbyname или getaddrinfo для получения ip-адресов.


 
tesseract   (2004-05-25 09:26) [2]

Пошли broadcast по UDP на порт 65535. должны ответить. Главное еслли есть маски подсети правильно его послать.


 
ISP ©   (2004-05-25 19:24) [3]

>BiN ©   (24.05.04 10:49) [1]
А получить MAC address удалённого компа? Зная имя или IP?


 
Rouse_ ©   (2004-05-25 21:39) [4]

> [3] ISP ©   (25.05.04 19:24)
А ARP нам для чего?


 
Verg ©   (2004-05-25 21:53) [5]


> [2] tesseract   (25.05.04 09:26)


Чем и кто должны ответить, и почему? Поясти, пожалуйста.


> [3] ISP ©   (25.05.04 19:24)
> >BiN ©   (24.05.04 10:49) [1]
> А получить MAC address удалённого компа? Зная имя или IP?


А, пардон, при чем тут MAC адрес?


 
52345262456   (2004-05-26 09:50) [6]

SP ©   (25.05.04 19:24) [3]

>BiN ©   (24.05.04 10:49) [1]
А получить MAC address удалённого компа? Зная имя или IP?


Используй функцию Netbios из модуля NB30.pas


 
tesseract ©   (2004-05-26 10:16) [7]

2>>verg Просто пошлют байт что они есть, что-то вроде широковешательного echo.


 
Федор Т   (2004-05-26 21:35) [8]

var
 Form1: TForm1;
 flagError: boolean;
const InitialSize = $1;

implementation

procedure TNetEnumThread.BeforeUpdate;
begin
TreeNode:=nil;
Form1.TreeView1.Items.Clear;
Form1.Button1.Enabled:=false;
end;

procedure TNetEnumThread.AfterUpdate;
begin
Form1.TreeView1.FullExpand;
Form1.Button1.Enabled:=true;
end;

procedure TNetEnumThread.Execute;
begin
FreeOnTerminate:=True;
Synchronize(BeforeUpdate);
LoadNetNode(nil);
Synchronize(AfterUpdate);
end;

procedure TNetEnumThread.AddChildNode;
begin
TreeNode:=Form1.TreeView1.Items.AddChild(TreeNode,ChildNode);
end;

procedure TNetEnumThread.LoadNetNode(NetNode: PNetResourceA);
var hEnum : THandle;
   Count,BufSize: DWORD;
   NR,Buf: PNetResourceA;
   R: Integer;
   next,add:boolean;
   CurrentNode: TTreeNode;
begin
R:=WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER,NetNode,hEnum);
if R<>NO_ERROR then exit;
BufSize:=InitialSize ; GetMem(Buf,BufSize);
try
 while true do
 begin
  Count:=$FFFFFFFF; // I wish to read ALL items
  R:=WNetEnumResource(hEnum,Count, Buf, BufSize);
  if R = ERROR_MORE_DATA then // Oops ! The InitialSize is too small !
  begin
   Count:=$FFFFFFFF; // I wish to read ALL items
   FreeMem(Buf); GetMem(Buf,BufSize);
   R:=WNetEnumResource(hEnum,Count, Buf, BufSize);
  end;
  if R = ERROR_NO_MORE_ITEMS then break; // All items are processed
  if R<>NO_ERROR then abort; // R is the error code. Process it!
  NR:=Buf;
  while Count>0 do
  begin
    CurrentNode:=TreeNode; // Remember current position

    if NR.lpRemoteName<>nil then
     ChildNode:=StrPas(NR.lpRemoteName)
    else
     ChildNode:="-";

    add:=false;
    next:=false;

    case NR.dwDisplayType of
     RESOURCEDISPLAYTYPE_NETWORK: next:=true;
     RESOURCEDISPLAYTYPE_DOMAIN: begin
                                  TreeNode:=nil;
                                  add:=true;
                                  next:=true;
                                 end;
     RESOURCEDISPLAYTYPE_SERVER: add:=true;
    end;

    if add=true then Synchronize(AddChildNode);
    if next=true then LoadNetNode(NR);
    if add=true then TreeNode:=CurrentNode; // restore current position

    Inc(NR);
    Dec(Count);
   end;
  end;
  finally
 WNetCloseEnum(hEnum); // Close handle
 FreeMem(Buf); // Free memory1
end;

end;

{$R *.dfm}
Вот может пригодится, правдо тут имя хостов в локальной сети.


 
megavolt   (2004-05-27 11:01) [9]

А можно поподробнее на счёёт широковещательного запроса? И какой нибудь маленький примерчик? Хотелось бы получить на выходе список компов присутствующих в сети. Т.е. IP адреса включенных компов.



Страницы: 1 вся ветка

Форум: "Сети";
Текущий архив: 2004.07.25;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.031 c
1-1089566673
XHelp
2004-07-11 21:24
2004.07.25
Заставить Делфи не показывать ошибки


14-1088762602
Snip
2004-07-02 14:03
2004.07.25
Облом с интернетом


9-1080968934
Voland2000
2004-04-03 09:08
2004.07.25
Движение спрайта


11-1077185193
<Falcon>
2004-02-19 13:06
2004.07.25
onDrawCell в mdvXLGrid


6-1085736941
Turbid
2004-05-28 13:35
2004.07.25
Проверка последнего изменения страницы без закачки?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский