두 가지 문제가 있습니다.
1) "localhost"라는 이름에 특별히 특별한 것은 없습니다. "localhost"가 작동하는 이유는 제대로 구성된 대부분의 DNS 영역에 "localhost"에 대한 명시 적 항목이 포함되어 있기 때문입니다. 정규화되지 않은 호스트 이름을 찾으면 DNS 확인 프로그램은 자동으로 /etc/resolv.conf의 "search"디렉토리에있는 도메인 추가를 시도합니다. 그 결과
search example.com
nameserver 192.168.0.1
nameserver 192.168.1.1
, "로컬 호스트"에 대한 DNS 조회를 포함하는 것이 전형적인 호스트의 /etc/resolv.conf 파일은의 로컬 리졸버는 "localhost.example.com"해결하려고 있고, example.com 것 영역 파일에 명시 적 항목이 있습니다.
$ORIGIN example.com
@ IN SOA ns1.example.com. ((the rest of the SOA record
...
localhost A 127.0.0.1
2) 이제 로컬 네트워크 인터페이스와 관련하여 지정하지 않은 플랫폼에 따라 달라집니다. 그것은 BSD와 리눅스에서 다르게 진행되었으므로 나는 MS-Windows에서 완전히 다른 방법을 기대할 것입니다. 당신을 가정하면
리눅스 참조하고, 로컬 네트워크 인터페이스의 목록은 getifaddrs(3)
에 의해 반환 - 문서화가 SIOCGIFFLAGS
IOCTL에서 오는 플래그를 포함로 netdevice에 설명 된대로, http://manpages.courier-mta.org/htmlman3/getifaddrs.3.html
그 flags
구조체의 멤버 (7) - http://manpages.courier-mta.org/htmlman7/netdevice.7.html
IFF_LOOPBACK 플래그는 루프백 인터페이스를 표시하며 동일한 구조에서 IP 주소를 가져올 수 있습니다.
그러나 제가 지적했듯이, 여러분이하는 일은 모두 해결자를 작성하는 것이고 루프백 인터페이스를 찾는 것은 완전히 범위에서 벗어납니다. 사이트 관리자는 영역 파일에서 루프백 인터페이스의 IP 주소를 지정하므로 걱정할 필요가 없습니다.
플랫폼은 CentOS입니다. 그래, 리눅스. 첫 번째 요점에 관해서는, 이것은 테스트를위한 특별한 경우입니다. – kmdent