Delphi Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
델파이 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
FreePascal/Lazarus
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
델마당
볼랜드포럼 광고 모집

델파이 Q&A
Delphi Programming Q&A
[14199] 친절한 답변 감사드립니다.(냉무)
박태성 [] 1926 읽음    2012-04-05 18:47
오랑캐꽃 님이 쓰신 글 :
: 흠... 우분투 요즘버전에 Wins 설정이 없어 윈도에서 호스트명으로 검색이 안되는 건 봤어도
: 로컬네트웍에서 윈도끼리 그러는 건 또 희안하네요...
:
:
: uses
:   ...WinSock, ... 
: 
: type
:   PIPData = ^TIPData;
:   TIPData = packed record
:   case Integer of
:     0: (IP1, IP2, IP3, IP4: Byte);
:     1: (LID: LongWord);
:   end;
: 
: function HostToIP(const aHost: AnsiString): TIPData;
: var
:   wsData   : TWSAData;
:   HostEnt  : PHostEnt;
: begin
:   WSAStartup($0101, wsData);
:   try
:     hostEnt := GetHostByName(PAnsiChar(aHost));
: 
:     if Assigned(HostEnt) and
:        Assigned(HostEnt^.H_Addr_List) and
:        Assigned(HostEnt^.H_Addr_List^) then
:       Result := PIPData(HostEnt^.H_Addr_List^)^
:     else
:       Result.LID := LongWord(-1);
:   finally
:     WSACleanup;
:   end;
: end;
: 

:
: 대충 위와같은 함수를 만드신 다음 찾으려는 A 컴퓨터의 호스트명을 넣어보세요.
:
:
: var
:   IPData: TIPData; 
: begin
:   IPData := HostToIP('firstcom');
:   with IPData do
:     ShowMessage(Format('%d.%d.%d.%d', [IP1, IP2, IP3, IP4]));
: end;
: 

:
: 그런데... 답글 달다보니 이름으로도 핑이 안날아가는 상황이라구요? 흠...
:
: 일단 ipconfig /all 하셔서 로컬네트웍에 "Tcpip를 통한 NetBIOS" 항목이 "사용" 으로 되어있는지 살펴보세요.
: 없다면 제어판 -> 네트워크 -> 로컬영역 가셔서 속성창 띄운 다음에
: 네트워킹 탭에 "Microsoft 네트워크용 파일 프린터 공유" 와 "Microsoft Networks용 클라이언트"
: 뭐 이런 이름의 항목이 설치되어있는지 살펴보시구요.
:
: 근처에 XP깔린 컴퓨터가 없어서 확인이 안되지만, 아무튼 파일/프린터 공유나 NetBEUI 서비스
: 같은 거 설치해주면 잘 될껍니다.
:
: 그럼... 건투를...
:
:
: 박태성 님이 쓰신 글 :
: : 3대의 컴퓨터가 공유기를 통해 로컬네트웍이 구성되어 있습니다.
: : A컴(\\Firstcom)에 Firebird Server와 채팅서버가 구동중입니다.(OS win xp)
: :
: : B컴(\\SecondCom)이 문제가 생겨서 OS를 새로 설치했습니다.(Win XP Sp3)
: :
: : 그전까지 B컴에서 A컴의 서버로 접속시
: : IdTcpClient.host='firstcom';  <- Error
: : ZConnection.HostName = 'firstcom';  <- Error
: :
: : 이런식으로 상대방컴의 이름으로 접속이 되었는데 OS 재설치후에는 IP Address로는 접속이 되는데
: : 컴퓨터이름으로 접속할려고 하면 컴퓨터를 찾지 못하면서 에러가 나네요.
: :
: : IdTcpClient.host='192.168.0.2';  <- 정상 접속
: : ZConnection.HostName = '192.168.0.2';  <- 정상 접속
: :
: : 새로 설치한 Win XP의 기본설정중에 뭔가 바뀐게 있는것 같은데 뭔지를 모르겠네요
: : 혹 이와같은 현상에 대해 조언을 좀 해주실수 있는지요?
: :
: : 참고로
: : B컴의 네트웍환경에서 보면 A컴의 이름이 잘 보이며 클릭해서 들어가면 자료도 볼수 있습니다.
: : 그리고 실행창에서 '\\Firstcom\Data'이런식으로 접근해봐도 A컴으로 접속이 제대로 됩니다.
: : Ping테스트에서 ping 192.168.0.2 이렇게 보내면 제대로 응답이 오고
: : Ping FirstCom 이렇게 하면 응답이 없네요(이건 원래 그런건지... ping에 대해 잘 몰라서요...)
: :
: : 유동ip아라서 공유기 전원이 꺼지면 각컴의 Ip가 바꾸더군요. 그래서 ip address로 설정을 잡아놓으면
: : 매번 새로 ip를 찾아야 되서 불편하네요. 컴이름으로 접속하고 싶어요 ㅠ.ㅠ

+ -

관련 글 리스트
14197 로컬네트웍에서 컴퓨터이름으로 TCP Server에 접속하기 박태성 2375 2012/04/04
14198     Re:로컬네트웍에서 컴퓨터이름으로 TCP Server에 접속하기 오랑캐꽃 2822 2012/04/05
14199         친절한 답변 감사드립니다.(냉무) 박태성 1926 2012/04/05
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.