Q&A

  • 네트웍환경의 다른 컴퓨터 이름읽기
윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의

컴퓨터 이름을 읽어오는 방법을 알고 싶습니다.

그리고 읽어온 컴퓨터 이름을 가지고 서로 컴퓨터간의 통신이 가능한 방법도

부탁드립니다.

1  COMMENTS
  • Profile
    김영대 1999.04.23 21:07
    이상준 wrote:

    > 윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의

    > 컴퓨터 이름을 읽어오는 방법을 알고 싶습니다.

    > 그리고 읽어온 컴퓨터 이름을 가지고 서로 컴퓨터간의 통신이 가능한 방법도

    > 부탁드립니다.



    안녕하세요 김영대입니다



    원도우즈 네트워크 환경의 컴퓨터 리스트를 구하는 내부

    통신 프로토콜은 TCP/IP가 아닌 BetBEUI 를 사용합니다

    하지만 컴퓨터간의 통신 프로그램을 직접 작성하셔야 한다면

    TCP/IP 를 사용하는 것이 일반적이고 TCP/IP 에서는

    IP 주소를 리스트 형태로 다 주는건 없고 하나하나 검사해야 합니다



    아래 예제는 원도우즈 네트워크 환경의 컴퓨터 리스트를 구하는 예제입니다

    그리고 제 홈페이지(myhome.shinbiro.com/~cozykyd) 의 자료실 4 에 보시면

    "상대방 컴퓨터 이름으로 IP주소 구하기 (반대도 가능)" 자료가 있는데

    이건 컴퓨터 이름으로 IP를 구하고 그 반대의 기능도 가능한 예제입니다

    아래 예제와 자료실의 소스를 참고하시면 구현하실 수 있을겁니다

    그럼 수고하세요



    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    StdCtrls;



    type

    TForm1 = class(TForm)

    LB_UserList: TListBox;

    Button1: TButton;

    procedure Button1Click(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    ServerName: String;

    function GetNetworkUserName: Boolean;

    end;



    PnetResourceArr = ^TNetResource;



    var

    Form1: TForm1;



    implementation

    {$R *.DFM}



    function TForm1.GetNetworkUserName: Boolean;

    var

    NetResource: TNetResource;

    Buf:Pointer;

    Count, BufSize, Res: DWORD;

    i: Integer;

    lphEnum: THandle;

    p: PnetResourceArr;

    begin

    GetNetworkUserName := False;

    LB_UserList.Clear;

    GetMem(Buf, 8192);

    try

    FillChar(NetResource, SizeOf(NetResource), 0);

    NetResource.lpRemoteName := PChar(ServerName);

    NetResource.dwDisplayType := RESOURCEDISPLAYTYPE_SERVER;

    NetResource.dwUsage := RESOURCEUSAGE_CONTAINER;

    NetResource.dwScope := RESOURCETYPE_DISK;

    Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK, RESOURCEUSAGE_CONTAINER,

    @NetResource,lphEnum);

    if Res <> 0 then

    System.Exit;

    while true do

    begin

    Count := -1;

    BufSize := 8192;

    Res := WNetEnumResource(lphEnum, Count, Pointer(Buf), BufSize);

    if Res = ERROR_NO_MORE_ITEMS then

    System.Exit;

    if (Res <> 0) then

    System.Exit;

    p := PNetResourceArr(Buf);

    for i := 0 to Count - 1 do

    begin

    LB_UserList.Items.Add(p^.lpRemoteName + 2);

    Inc(p);

    end;

    end;

    Res := WNetCloseEnum(lphEnum);

    If Res <> 0 then

    raise Exception(Res);

    finally

    FreeMem(Buf);

    GetNetworkUserName := True;

    end;

    end;



    procedure TForm1.Button1Click(Sender: TObject);

    begin

    ServerName := '전산운영팀'; // 네트워크 환경의 작업그룹명

    if GetNetworkUserName then

    Showmessage('총 '+IntToStr(LB_UserList.Items.Count)+' 개의 개체가 있습니다')

    else

    Showmessage('정보를 얻지 못했습니다');

    end;



    end.



    • 공대규
    • 1999.04.23 22:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.23 23:23
      공대규 wrote: > 안녕하십니까요? > > PaintBox에 Image1.canvas를 카피하려 할 때, 에러가 납니다. >...
    • 곽승주
    • 1999.07.06 00:22
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 그냥
      1999.07.06 02:09
      곽승주 께서 말씀하시기를... > Edit콘트롤에 KeyPress이벤트를 걸러두고 그안에서 엔터키(#13)가 > 눌려...
    • 공대규
    • 1999.04.23 22:45
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 안치봉
      1999.04.23 23:23
      공대규 wrote: > 안녕하십니까요? > > PaintBox에 Image1.canvas를 카피하려 할 때, 에러가 납니다. >...
    • 그냥
      1999.07.06 02:03
      답이 아닌거 같긴한데... 제가 아는한 TQuery는 filer를 하지 않아도 Sql문에 그냥 조건절(where)를 사...
    • 이상준
    • 1999.04.23 18:51
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김영대
      1999.04.23 21:07
      이상준 wrote: > 윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 > 컴퓨터 이름...
    • 고광준
      1999.07.05 23:06
      Unix Server와 PC와 UDP Socket을 써서 통신을 하려고 합니다. 근데 Unix Server에서 Port를 입력할때 hto...
    • 김영대
      1999.07.05 23:50
      고광준 께서 말씀하시기를... > Unix Server와 PC와 UDP Socket을 써서 통신을 하려고 합니다. > 근데 Un...
    • 이민병
    • 1999.04.23 19:14
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 김경수
      1999.04.24 05:06
      안녕하세요 김경수라는 사람입니다. 전 nt용 오라클8하구 델파이4랑 해봤는데 뭐 같은내용이겠지요.. 오...
    • camplus
    • 1999.07.05 22:46
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 최석기
    • 1999.07.05 21:46
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 이상준
      1999.04.23 18:51
      윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 컴퓨터 이름을 읽어오는 방법을 ...
    • 김영대
      1999.04.23 21:07
      이상준 wrote: > 윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 > 컴퓨터 이름...
    • 임윤경
    • 1999.04.23 00:54
    • 2 COMMENTS
    • /
    • 0 LIKES
    • Jimmy
      1999.07.05 21:11
      안녕하세요... 회계관련 프로그램인데...두 테이블에 '잔액'이라는 필드가 있습니다. 이걸 계산해야 하는...
    • 김영대
      1999.04.23 18:23
      임윤경 wrote: > 제가 김영대씨 홈페이지에서 받은 FTP서버의 파일을 PC로 다운로드하는 소스에 보면, rec...
    • bisbuck
    • 1999.07.05 20:58
    • 0 COMMENTS
    • /
    • 0 LIKES
    • 1999.07.05 20:27
    • 4 COMMENTS
    • /
    • 0 LIKES
    • 이현아
      1999.04.23 03:04
      안녕하세요! 저는 이제 막 델파이 공부를 하는 직장인입니다. 다름이 아니구요! Edit박스로 성명...
    • 송기원
      1999.07.06 18:10
      EdbEngineError 의 errors[index].errorcode 또는 errors[index].NativeError를 참조하면 될거 같은데.. ...
    • 김영대
      1999.04.23 18:04
      이현아 wrote: > 안녕하세요! > 저는 이제 막 델파이 공부를 하는 직장인입니다. > 다름이 아니구요! >...
    • 이현아
      1999.04.24 16:43
      김영대 wrote: > 이현아 wrote: > > 안녕하세요! > > 저는 이제 막 델파이 공부를 하는 직장인입니다. ...
    • 강지영
      1999.04.23 00:51
      구창민님의 홈페이지 팁/강좌란에서 읽은 팁입니다. 실행을 하니까 그리드의 타이틀을 클릭하는 대로 쿼리...
    • 신인재
      1999.07.05 21:15
      Parent 프로퍼티를 설정하셔야 합니다. 아래와 같이 MyBtn.Parent := ScrollBox1; 서경철 께서 말씀...
    • 배리스
      1999.04.23 17:51
      안녕하세요. 강지영씨.. 오늘은 날씨가 별로 좋지 않네요. 하지만 이런 날씨가 더 좋은것 같습니다. 왜냐...
    • 김형하
    • 1999.04.22 20:25
    • 2 COMMENTS
    • /
    • 0 LIKES
    • 레드맨
      1999.07.05 20:00
      델파이를처음 시작하려고 합니다. 뭐부터시작 해야할지? 자세히설명해주세요!!!부탁합니다.....
    • 이정욱
      1999.04.23 07:10
      네.. 저희도 통신 프로그램의 터미널을 만들때 부딪혔던 문제입니다. 프린터같은 경우면 간단하게 LineTo...
    • 배리스
    • 1999.04.23 06:39
    • 1 COMMENTS
    • /
    • 0 LIKES
    • 이정욱
      1999.04.23 07:08
      파워러브 델파이 창간호의 일부 입니다~ 1. 현재 라인번호 알아내기 메모에서 현재 Caret이 위치하...
    • 문창완
    • 1999.04.23 05:16
    • 4 COMMENTS
    • /
    • 0 LIKES
    • Endy
      1999.07.05 19:19
      저는 MS-SQL7.0을 사용합니다. Delphi에서 StoreProcedure를 실행하면 BDE Engine Error가 발생 합니다. 물...
    • 이정욱
      1999.04.23 07:03
      참.. 혹시 검색엔진이 야후같은것을 말씀하신것이라면 기본개념은 이렇습니다. 별것 아니죠. 데이타 베...
    • 조복기
      1999.07.05 19:54
      Endy 께서 말씀하시기를... > 저는 MS-SQL7.0을 사용합니다. Delphi에서 StoreProcedure를 실행하면 BDE E...
    • 이정욱
      1999.04.23 07:01
      그냥 참고만 하세요~ http://www.nobreak.com 에 가시면 CrazySearch라는것이 있습니다. 그것의 소스를 ...