/etc/hosts에 대한 호스트 조회를 존중합니다.

/etc/hosts에 대한 호스트 조회를 존중합니다.

host및 같은 유틸리티를 사용 dig하면 호스트 이름에 해당하는 IP 주소를 볼 수 있습니다.

getent쿼리나 기타 NSS 데이터베이스에 사용할 수 있는 /etc/hosts유틸리티 도 있습니다 .

나는 정의된 위치에 관계없이 호스트 이름을 확인할 수 있는 편리한 표준 유틸리티(예: Debian에서 사용 가능)를 찾고 있습니다.

이는 다음과 어느 정도 동일해야 합니다.

ping "$HOST" | head -1 | perl -lne '/\((.*?)\)/ && print $1'

답변1

문제가 이러한 이름을 확인하기 위해 ipv6을 사용하고 싶지 않다면 getent에 ipv4만 사용하도록 요청하세요. 그러면 모든 ipv4 주소가 나열됩니다.

giuseppe@blatta:~$ getent ahostsv4 www.google.com | cut -d' ' -f1 | sort -u
173.194.40.80
173.194.40.81
173.194.40.82
173.194.40.83
173.194.40.84

답변2

문제는 호스트 이름을 확인할 수 있는 여러 API가 있다는 것입니다(예: ). gethostbynamegetaddrinfoinet_pton일부는 여러 주소를 반환하거나 필요한 주소 유형을 쿼리할 수 있습니다.

휴대용 방식을 원하신다면하나IPv4 주소이면 가능합니다.

perl -MSocket -le 'print inet_ntoa inet_aton shift' www.google.com

답변3

내가 아는 한, 원하는 작업을 수행하는 유일한 명령은 다음과 같습니다.

http://linux.die.net/man/1/resolveip

그러나 이는 mysql-server에만 제공되므로 모든 곳에 설치하는 데 적합하지 않을 수 있습니다.

답변4

(이 답변은 컴퓨터에 루트 액세스 권한이 있는 경우에만 적용됩니다.)

나도 이거 고민하다가 달리기로 표준화했지DNS내 모든 컴퓨터에서. Dnsmasq는 경량 DNS 캐시입니다. 부가적인 이점으로 DNS를 통해 콘텐츠를 제공합니다 /etc/hosts.

관련 정보