![/etc/hosts에 대한 호스트 조회를 존중합니다.](https://linux55.com/image/30689/%2Fetc%2Fhosts%EC%97%90%20%EB%8C%80%ED%95%9C%20%ED%98%B8%EC%8A%A4%ED%8A%B8%20%EC%A1%B0%ED%9A%8C%EB%A5%BC%20%EC%A1%B4%EC%A4%91%ED%95%A9%EB%8B%88%EB%8B%A4..png)
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가 있다는 것입니다(예: ). gethostbyname
그 getaddrinfo
중 inet_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
.