출력을 얻고 dig 명령을 테스트하려면 어떻게 해야 합니까?

출력을 얻고 dig 명령을 테스트하려면 어떻게 해야 합니까?

"dig +short www.example.com" 명령을 입력하면 비슷한 결과가 나타납니다.

www.example.com.
192.168.1.1
192.168.1.2
192.168.1.3

첫 번째 주소를 얻어서 내가 원하는 주소인지 테스트하고 싶습니다(192.168.1.1)

쉘 스크립트, 특히 두 번째 줄을 사용하여 이 명령의 출력을 어떻게 얻을 수 있습니까?

답변1

다음과 같은 작업이 수행됩니다.

$ dig +short www.google.com | head -1
74.125.225.113

하지만 IP 주소가 여러 개인 대부분의 서버는 DNS 수준에서 일종의 라운드 로빈을 수행하므로 다음 명령을 실행할 때마다 목록이 일반적으로 회전하므로 주의하세요 dig.

$ dig +short www.google.com
74.125.225.116
74.125.225.112
74.125.225.113
74.125.225.114
74.125.225.115

$ dig +short www.google.com
74.125.225.115
74.125.225.116
74.125.225.112
74.125.225.113
74.125.225.114

$ dig +short www.google.com 
74.125.225.114
74.125.225.115
74.125.225.116
74.125.225.112
74.125.225.113

쿼리 간에 IP가 어떻게 이동하는지 확인하세요. 이는 이러한 서버 간의 로드 균형을 조정하기 위해 수행됩니다.

IP를 변수로 캡처

다음 명령은 IP 주소의 출력을 캡처하여 셸 변수에 배치합니다.

$ IP=$(dig +short www.google.com | head -1)

다음을 통해 확인할 수 있습니다.

$ echo $IP
74.125.225.114

답변2

여기요

dig +short  www.example.com | sed -n '2{p;q}'

-n기본적으로 sed는 입력 내용을 인쇄할 수 없습니다. 2번째 줄에서 실행 2되도록 하세요 p;q. p인쇄 및 q종료를 나타냅니다.

관련 정보