![]() |
Delphi. Получение IP, имя компа, юзера...
1. Как получить список рабочих групп в сети и добавить их в ComboBox.
2. Как получить IP, имена компов, имена пользователей в конкретной рабочей группе (см. п.1) и (в зависимости от настроек проги - отображать IP, имя или пользователя) добавить их в ListView. ===сенькью=== |
Тут без ВинСокс не обойтись
Один из вариантов uses Winsock; function GetIPFromHost (var HostName, IPaddr, WSAErr: string): Boolean; type Name = array[0..100] of Char; PName = ^Name; var HEnt: pHostEnt; HName: PName; WSAData: TWSAData; i: Integer; begin Result := False; if WSAStartup($0101, WSAData) <> 0 then begin WSAErr := 'Winsock is not responding."'; Exit; end; IPaddr := ''; New(HName); if GetHostName(HName^, SizeOf(Name)) = 0 then begin HostName := StrPas(HName^); HEnt := GetHostByName(HName^); for i := 0 to HEnt^.h_length - 1 do IPaddr := Concat(IPaddr, IntToStr(Ord(HEnt^.h_addr_list^[i])) + '.'); SetLength(IPaddr, Length(IPaddr) - 1); Result := True; end else begin case WSAGetLastError of WSANOTINITIALISED:WSAErr:='WSANotInitialised'; WSAENETDOWN :WSAErr:='WSAENetDown'; WSAEINPROGRESS :WSAErr:='WSAEInProgress'; end; end; Dispose(HName); WSACleanup; end; ну а вызовем ету функцыю через кнопку procedure TForm1.Button1Click(Sender: TObject); var Host, IP, Err: string; begin if GetIPFromHost(Host, IP, Err) then begin Edit1.Text := Host; Edit2.Text := IP; end else MessageDlg(Err, mtError, [mbOk], 0); end; Подробнее читай на ссылке (English) http://delphi.about.com/od/networking/l/aa103100a.htm |
Время: 09:40. |
Время: 09:40.
© OSzone.net 2001-