Q&A
HOME
Tips & Tech
Q&A
Discuss
Download
자유게시판
홍보 / 광고
구인 / 구직
LOGIN
회원가입
네트웍환경의 다른 컴퓨터 이름읽기
윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의
컴퓨터 이름을 읽어오는 방법을 알고 싶습니다.
그리고 읽어온 컴퓨터 이름을 가지고 서로 컴퓨터간의 통신이 가능한 방법도
부탁드립니다.
1
COMMENTS
김영대
•
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.
0
0
삭제
수정
댓글
(NOTICE) You must be
logged in
to comment on this post.
한승현
•
1999.04.23 23:31
1
COMMENTS
/
0
LIKES
component install에 관한 질문...
안치봉
•
1999.04.24 04:34
한승현 wrote: > > dpk, dpl이 아닌 개별적인 파일(pas)을 가지고 하나씩 > component를 install시키...
공대규
•
1999.04.23 22:45
1
COMMENTS
/
0
LIKES
Canvas.CopyRect 에 대하여
안치봉
•
1999.04.23 23:23
공대규 wrote: > 안녕하십니까요? > > PaintBox에 Image1.canvas를 카피하려 할 때, 에러가 납니다. >...
권만섭
1999.04.23 19:36
0
COMMENTS
/
0
LIKES
[긴급]마스크에디터에 공백있으면 저장이 안돼요...
이민병
•
1999.04.23 19:14
1
COMMENTS
/
0
LIKES
Sql-Net세팅과 오라클 연결..도와주세요
김경수
•
1999.04.24 05:06
안녕하세요 김경수라는 사람입니다. 전 nt용 오라클8하구 델파이4랑 해봤는데 뭐 같은내용이겠지요.. 오...
이상준
•
1999.04.23 18:51
1
COMMENTS
/
0
LIKES
네트웍환경의 다른 컴퓨터 이름읽기
윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 컴퓨터 이름을 읽어오는 방법을 알고 싶습니다. 그리고 읽어온 컴퓨터 이름을 가지고 서로 컴퓨터간의 통신이 가능한 방법도 부탁드립니다.
김영대
•
1999.04.23 21:07
이상준 wrote: > 윈도95의 바탕화면에 있는 네트워크 환경처럼 LAN으로 연결된 컴퓨터들의 > 컴퓨터 이름...
배리스
•
1999.04.23 06:39
1
COMMENTS
/
0
LIKES
TMemo의 마지막으로 가게 하는 방법
이정욱
•
1999.04.23 07:08
파워러브 델파이 창간호의 일부 입니다~ 1. 현재 라인번호 알아내기 메모에서 현재 Caret이 위치하...
한범수
1999.04.23 05:58
0
COMMENTS
/
0
LIKES
잘않되는데? 어떻게 해결책이?(MDI &DLL)
문창완
•
1999.04.23 05:16
2
COMMENTS
/
0
LIKES
인터넷 검색엔진에 대한 물음..@_@
이정욱
•
1999.04.23 07:03
참.. 혹시 검색엔진이 야후같은것을 말씀하신것이라면 기본개념은 이렇습니다. 별것 아니죠. 데이타 베...
이정욱
•
1999.04.23 07:01
그냥 참고만 하세요~ http://www.nobreak.com 에 가시면 CrazySearch라는것이 있습니다. 그것의 소스를 ...
전진우
•
1999.04.23 04:02
1
COMMENTS
/
0
LIKES
[추가질문]mdb사용프로그램 배포문제 DAO3032
이정욱
•
1999.04.23 06:58
저도 다오때문에 고생을 한적이 있었지요... 다오를 분명 설치를 했는데도 잘 안되더군요... 사실 저도 ...
이현아
•
1999.04.23 03:04
2
COMMENTS
/
0
LIKES
DB에 사진넣을려고 하는데..
김영대
•
1999.04.23 18:04
이현아 wrote: > 안녕하세요! > 저는 이제 막 델파이 공부를 하는 직장인입니다. > 다름이 아니구요! >...
이현아
•
1999.04.24 16:43
김영대 wrote: > 이현아 wrote: > > 안녕하세요! > > 저는 이제 막 델파이 공부를 하는 직장인입니다. ...
조봉성
•
1999.04.23 02:54
1
COMMENTS
/
0
LIKES
Incompatible Type 'Integer' and 'Real' 에러문제
안치봉
•
1999.04.23 03:14
조봉성 wrote: > table1.FieldByName('Pay').AsInteger := Result / 30 * 1000; > Result 는 정수형임 >...
전진우
•
1999.04.23 02:14
1
COMMENTS
/
0
LIKES
질문:mdb사용프로그램 배포시의 문제. DAO3032
이정욱
•
1999.04.23 02:45
You need the following files to install DAO 3.5: Table 1 File name Location DAO350.DLL C:Program...
임윤경
•
1999.04.23 00:54
1
COMMENTS
/
0
LIKES
recieve용 socket이 뭐죠?
김영대
•
1999.04.23 18:23
임윤경 wrote: > 제가 김영대씨 홈페이지에서 받은 FTP서버의 파일을 PC로 다운로드하는 소스에 보면, rec...
강지영
•
1999.04.23 00:51
1
COMMENTS
/
0
LIKES
dbGrid에서 컬럼헤더의 클릭에..
배리스
•
1999.04.23 17:51
안녕하세요. 강지영씨.. 오늘은 날씨가 별로 좋지 않네요. 하지만 이런 날씨가 더 좋은것 같습니다. 왜냐...
황인수
1999.04.22 23:55
0
COMMENTS
/
0
LIKES
마스터-디테일.. 코딩으로 구현하기
김형하
•
1999.04.22 20:25
1
COMMENTS
/
0
LIKES
윈98에서 출력시 문제점.
이정욱
•
1999.04.23 07:10
네.. 저희도 통신 프로그램의 터미널을 만들때 부딪혔던 문제입니다. 프린터같은 경우면 간단하게 LineTo...
권용만
•
1999.04.22 19:12
3
COMMENTS
/
0
LIKES
Tablel or Query에서 Field추가..
신인재
•
1999.04.22 19:50
권용만 wrote: > 항상 도움을 주셔서 감사합니다. > RunTime시에 Table 또는 Query에 필드를 넣으려 합니...
권용만
•
1999.04.22 22:56
신인재 wrote: > 권용만 wrote: > > 항상 도움을 주셔서 감사합니다. > > RunTime시에 Table 또는 Query...
신인재
•
1999.04.23 00:43
권용만 wrote: > 신인재 wrote: > > 권용만 wrote: > > > 항상 도움을 주셔서 감사합니다. > > > RunTi...
신호철
•
1999.04.22 19:12
1
COMMENTS
/
0
LIKES
txt-->db로 읽고 싶어요
신인재
•
1999.04.22 20:18
신호철 wrote: > 매일생성되는 화일에서 정리에서 리포트로 뽑으려 하는데 > 잘 정리가 않되서요 그리고...
송동일
•
1999.04.22 19:02
4
COMMENTS
/
0
LIKES
스트링을 정수나 실수로 바꾸려면...
안치봉
•
1999.04.22 19:20
송동일 wrote: > 스트링 중간에 콤마가 있는 것을 float로 바꾸려면 어떻게 해야 되는지 > 궁금합니다. ...
송동일
•
1999.04.22 19:36
안치봉 wrote: > 송동일 wrote: > > 스트링 중간에 콤마가 있는 것을 float로 바꾸려면 어떻게 해야 되는...
글쎄요.
•
1999.04.22 23:29
송동일 wrote: > 안치봉 wrote: > > 송동일 wrote: > > > 스트링 중간에 콤마가 있는 것을 float로 바꾸...
안치봉
•
1999.04.22 19:51
송동일 wrote: > 안치봉 wrote: > > 송동일 wrote: > > > 스트링 중간에 콤마가 있는 것을 float로 바꾸...
chaser
1999.04.22 18:53
0
COMMENTS
/
0
LIKES
ActiveX내부에서 OnEnter 이벤트가 안되여...
이상준
1999/04/23 18:51
Views
296
Likes
0
Comments
1
Reports
0
Tag List
수정
삭제
목록으로
한델 로그인 하기
로그인 상태 유지
아직 회원이 아니세요? 가입하세요!
암호를 잊어버리셨나요?
> 윈도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.