Bash 스크립트에서 호스트 이름을 IP 주소로 확인하는 방법은 무엇입니까?

Bash 스크립트에서 호스트 이름을 IP 주소로 확인하는 방법은 무엇입니까?

Bash 스크립트에서 호스트 이름을 IP 주소로 확인하는 가장 깨끗한 방법은 무엇입니까? 나는 그것을 사용하고 있다아키텍처Linux.

답변1

당신은 그것을 사용할 수 있습니다 getent. 그것은 그것과 함께 제공됩니다 glibc(따라서 당신은 거의 확실히 Linux에 그것을 가지고 있습니다). 이 문제는 gethostbyaddr/gethostbyname2를 사용하여 해결할 수 있으므로 /etc/hosts/NIS/etc도 확인됩니다.

getent hosts unix.stackexchange.com | awk '{ print $1 }'

또는 Heinzi가 아래에 말한 것처럼 dig매개변수를 사용할 수 있습니다( /NSS/etc +short를 보지 않고 DNS 서버에 직접 쿼리 )./etc/hosts

dig +short unix.stackexchange.com

사용할 수 없는 경우 dig +short다음 중 하나가 작동합니다. 이러한 모든 쿼리는 DNS를 직접 쿼리하고 다른 확인 방법을 무시합니다.

host unix.stackexchange.com | awk '/has address/ { print $4 }'
nslookup unix.stackexchange.com | awk '/^Address: / { print $2 }'
dig unix.stackexchange.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 }'

하나의 IP만 인쇄하려면 exit이 명령을 awk작업 흐름에 추가하세요.

dig +short unix.stackexchange.com | awk '{ print ; exit }'
getent hosts unix.stackexchange.com | awk '{ print $1 ; exit }'
host unix.stackexchange.com | awk '/has address/ { print $4 ; exit }'
nslookup unix.stackexchange.com | awk '/^Address: / { print $2 ; exit }'
dig unix.stackexchange.com | awk '/^;; ANSWER SECTION:$/ { getline ; print $5 ; exit }'

답변2

host팔로우dnsutils팩:

$ host unix.stackexchange.com
unix.stackexchange.com has address 64.34.119.12

(수정됨패키지 이름은 주석을 기반으로 합니다. 다른 배포판에는 hostDebian/Ubuntu와 같은 다른 패키지가 있습니다.9개 호스트 바인딩, SUSE를 엽니다.바인딩 유틸리티, 알뜰한 소프트웨어제본.)

답변3

내 컴퓨터에는 작업을 수행하는 것으로 보이는 도구가 있습니다. 매뉴얼 페이지에는 mysql과 함께 제공되는 것 같다고 나와 있습니다. 사용 방법은 다음과 같습니다.

resolveip -s unix.stackexchange.com
64.34.119.12

호스트 이름을 확인할 수 없는 경우 도구의 반환 값은 0과 다릅니다.

resolveip -s unix.stackexchange.coma
resolveip: Unable to find hostid for 'unix.stackexchange.coma': host not found
exit 2

고쳐 쓰다 Fedora에서는 mysql-server와 함께 제공됩니다.

yum provides "*/resolveip"
mysql-server-5.5.10-2.fc15.x86_64 : The MySQL server and related files
Dépôt         : fedora
Correspondance depuis :
Nom de fichier      : /usr/bin/resolveip

내 생각엔 이것이 스크립트에 대한 이상한 종속성을 생성하는 것 같습니다...

답변4

getent hosts unix.stackexchange.com | cut -d' ' -f1

관련 정보