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

C++빌더 Q&A
C++Builder Programming Q&A
[41085] ping과 gethostbyname에 대해서...
노력가 [] 1379 읽음    2005-07-17 15:52
if(WSAStartup(MAKEWORD(2, 0), &wsaData) == 0)
{
  phi = gethostbyname(strHostName);
  if(phi != NULL)
  {
   ip = inet_ntoa(*(struct in_addr *)*phi->h_addr_list);
   
  
  
   printf("%s\n\n",ip);
  
  }
  else
  {
   //error - refer to MSDN gethostbyname function
  }
  WSACleanup( );
}
else
{
  //error
}

이렇게 실행할경우 현재 ip에 들어있는 주소의 아이피가 나옵니다.

문제는 공유기를 사용할때 발생합니다.

보통 ddns로 자기 컴퓨터의 외부아이피(인터넷아이피)를 지정하고

그 ddns주소로 ping을 치면 인터넷아이피(220.x.x.x 이런식으로)가 나옵니다.

하지만 공유기를 사용하면

ping을 치면 외부아이피가 아니라 자신의 내부아이피(192.168.0.1 이런식)가 나옵니다.

물론 공유기를 사용한다 하여도

다른사람들이 같은주소로 ping을 치면 인터넷아이피가 나옵니다.(정상적으로)

제가보기에는 ping 같은걸 쳐서 자기 인터넷아이피와 같으면 그 랜카드의 내부아이피를 우선 출력하게 하는것 같습니다.

gethostbyname도 역시 ping처럼 공유기를 사용하면 내부 아이피가 나와버립니다.

이걸 다른집에서 ping을 치는것처럼 원래정상으로(공유기 사용안할때처럼) 외부 아이피가 나오게 하는법이 없을까요?

참고로 c콘솔어플리케이션 입니다.

+ -

관련 글 리스트
41085 ping과 gethostbyname에 대해서... 노력가 1379 2005/07/17
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.