보통 gethostbyname은 DNS와 관련된 작업을 할때 사용합니다.
자기 IP 주소를 알려면 ethernet interface "eth0"에 대해
ioctl system call을 사용합니다. 즉 SIOCGIFADDR(맞나?)을
ioctl의 인자로 줘서 IP 주소를 알아냅니다.
자세한 설명은 ioctl system call을 확인하세요.
: : 로컬의 ip address를 알고 싶은데요. 보통
: :
: : /etc/hosts 파일에 보면
: :
: : 127.0.0.1 localhost
: : 143.248.80.212 babo babo.kaist.ac.kr
: :
: : 위와 같이 설정이 되어 있죠.
: :
: : 근데 한줄 더 들어가 있는 경우도 있더군요.
: :
: : 아래와 같이
: :
: : 127.0.0.1 localhost
: : 127.0.0.1 (babo babo.kaist.ac.kr)<----이렇게 사용 하면 않됩니다..
: 말그대로 127.0.0.1 localhost 입니다......
: 루프백이라고 도 말하는데...(맞던가)
:
: : 143.248.80.212 babo babo.kaist.ac.kr<---이것은 맞구여..
: babo(host name:컴퓨터 이름) kaist.ac.kr(domain name)
: kaist.ac.kr<-----dns 의 등록이 되어 있다면..
: babo.kaist.ac.kr<-----이것을 사용 할수 있습니다..
: dns 를 알고 싶으면 공부방 에 있는 문서 참조 하세여..
:
: :
: : 이렇게 설정하면 잘못하는 건가요...
: :
: : 프로그램에서 이 ip 를 가져오고 싶은데 gethostbyname 함수를 사용하면
: : hosts 파일에 씌여있는 순서대로 127.0.0.1 을 가져와 버리고 마네요..
: :
: : 해결책이 있을까요. 제대로 된 아이피를 가져올 수 있는...
: :
: : 제가 사용하는 환경은 x86 알짜리눅스 6.2 버전입니다...
:
: --
: 열심히 삽질 하자
: 허접 삽질 엽기 삽질