whois 조회는 인터넷 도메인의 실제 소유자가 누구인지, 그리고 해당 도메인과 관련된 다양한 상세 정보를 알아볼 수 있는 유용한 방법입니다. Linux 환경에서는 명령줄 인터페이스를 통해 whois 조회를 실행할 수 있습니다. 이 글에서는 그 방법을 자세히 안내합니다.
후이즈 시스템이란 무엇인가?
후이즈 시스템은 도메인 소유권과 관련된 세부 정보를 기록한 데이터베이스 시스템입니다. ICANN(국제 인터넷 주소 관리 기구)은 도메인 이름 등록 및 소유권을 관리하지만, 실제 기록 데이터는 레지스트리라고 불리는 여러 회사에 의해 유지됩니다.
누구나 후이즈 기록을 조회할 수 있습니다. 조회를 요청하면, 레지스트리 중 하나가 해당 요청을 처리하고 관련 후이즈 레코드에서 상세 정보를 제공합니다.
다음은 whois 시스템을 이해하는 데 필수적인 용어들입니다.
레지스트리: 특정 도메인 이름 목록을 관리하는 회사 (여러 회사가 존재합니다).
등록자: 도메인의 법적 소유자. 이 사람의 이름으로 도메인이 등록됩니다.
등록 대행자: 등록자가 도메인을 등록하기 위해 이용하는 회사.
후이즈 레코드에는 도메인 이름을 등록한 개인, 회사 또는 기타 법인과 관련된 모든 연락처 정보가 포함됩니다. 레코드에 포함된 정보량은 등록마다 다를 수 있습니다.
일반적으로 후이즈 기록에는 다음과 같은 정보가 포함됩니다.
등록자 이름 및 연락처 정보 (도메인 소유자)
등록 대행자 이름 및 연락처 정보 (도메인 이름을 등록한 회사)
도메인 등록 날짜
정보가 마지막으로 업데이트된 시간
도메인 만료 날짜
웹 브라우저를 통해서도 whois 조회를 할 수 있지만, Linux whois 명령어를 사용하면 명령줄에서 직접 조회를 수행할 수 있습니다. 이는 그래픽 사용자 인터페이스 없이 컴퓨터에서 조회를 해야 하거나, 쉘 스크립트 내에서 조회를 실행하려는 경우에 특히 유용합니다.
whois 명령어 설치
whois 명령어는 Ubuntu 20.04 버전에 이미 기본으로 설치되어 있습니다. 다른 Ubuntu 버전이나 배포판의 경우, 다음 명령어를 사용하여 설치할 수 있습니다.
sudo apt-get install whois
Fedora 사용자는 다음 명령어를 사용하십시오.
sudo dnf install whois
Manjaro에서는 다음 명령어를 입력합니다.
sudo pacman -Syu whois
도메인 이름으로 whois 조회하기
whois 명령어는 도메인 이름 또는 인터넷 프로토콜(IP) 주소와 함께 사용할 수 있습니다. 각각의 경우 반환되는 정보는 약간씩 다릅니다.
먼저 도메인 이름을 사용하여 조회를 수행하는 예시입니다.
whois cnn.com
whois 레지스트리의 응답은 요약 정보로 시작한 다음 추가 정보를 포함하는 형태로 반복됩니다. 아래는 상표권 설명 및 이용 약관이 제거된 예시입니다.
Domain Name: CNN.COM Registry Domain ID: 3269879_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.corporatedomains.com Registrar URL: http://www.cscglobal.com/global/web/csc/digital-brand-services.html Updated Date: 2018-04-10T16:43:38Z Creation Date: 1993-09-22T04:00:00Z Registry Expiry Date: 2026-09-21T04:00:00Z Registrar: CSC Corporate Domains, Inc. Registrar IANA ID: 299 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: 8887802723 Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited Domain Status: serverDeleteProhibited https://icann.org/epp#serverDeleteProhibited Domain Status: serverTransferProhibited https://icann.org/epp#serverTransferProhibited Domain Status: serverUpdateProhibited https://icann.org/epp#serverUpdateProhibited Name Server: NS-1086.AWSDNS-07.ORG Name Server: NS-1630.AWSDNS-11.CO.UK Name Server: NS-47.AWSDNS-05.COM Name Server: NS-576.AWSDNS-08.NET DNSSEC: unsigned
위 정보는 비교적 명확합니다. 연락처 정보, 등록 날짜 등을 포함하여 등록 대행자 및 레지스트리에 대한 다양한 세부 정보가 제공됩니다. 목록 중 일부 항목은 생소할 수도 있습니다.
IANA(인터넷 주소 할당 기관)는 최상위 도메인 이름 시스템 영역, IP 프로토콜 주소 지정 시스템 및 레지스트리 목록과 같은 사항을 감독하고 조정합니다. 위 결과에서 레지스트리는 ‘IANA ID: 299’로 표시된 299번입니다.
‘도메인 상태’ 줄은 도메인의 현재 상태를 나타내며, 여러 상태가 동시에 적용될 수 있습니다. 각 상태는 확장 가능한 프로비저닝 프로토콜에 따라 정의됩니다. 일부 상태는 거의 볼 수 없으며, 다른 일부는 법적 분쟁과 같은 특정 상황에 제한됩니다.
이 예시에서는 다음과 같은 상태가 적용되었습니다.
clientTransferProhibited: 현재 등록 대행자에서 다른 등록 대행자로 도메인을 이전하는 요청을 거부합니다.
serverDeleteProhibited: 도메인을 삭제할 수 없습니다.
serverTransferProhibited: 도메인을 다른 등록 대행자에게 이전할 수 없습니다.
serverUpdateProhibited: 도메인 정보를 업데이트할 수 없습니다.
마지막 3개 상태는 일반적으로 등록자의 요청이 있거나 법적 분쟁이 진행 중인 경우에 활성화됩니다. 이 경우 CNN은 회사의 도메인을 ‘잠금’ 처리하기 위해 이러한 기능을 요청했을 수 있습니다.
DNSSEC는 도메인 이름 시스템 보안 확장으로, DNS 이름 확인자가 DNS 영역에서 수신한 데이터가 유효하고 변경되지 않았는지 암호화 방식으로 확인할 수 있도록 하는 시스템입니다.
다음은 응답의 더 자세한 부분입니다.
Domain Name: cnn.com Registry Domain ID: 3269879_DOMAIN_COM-VRSN Registrar WHOIS Server: whois.corporatedomains.com Registrar URL: www.cscprotectsbrands.com Updated Date: 2018-04-10T16:43:38Z Creation Date: 1993-09-22T04:00:00Z Registrar Registration Expiration Date: 2026-09-21T04:00:00Z Registrar: CSC CORPORATE DOMAINS, INC. Registrar IANA ID: 299 Registrar Abuse Contact Email: [email protected] Registrar Abuse Contact Phone: +1.8887802723 Domain Status: clientTransferProhibited http://www.icann.org/epp#clientTransferProhibited Domain Status: serverDeleteProhibited http://www.icann.org/epp#serverDeleteProhibited Domain Status: serverTransferProhibited http://www.icann.org/epp#serverTransferProhibited Domain Status: serverUpdateProhibited http://www.icann.org/epp#serverUpdateProhibited Registry Registrant ID: Registrant Name: Domain Name Manager Registrant Organization: Turner Broadcasting System, Inc. Registrant Street: One CNN Center Registrant City: Atlanta Registrant State/Province: GA Registrant Postal Code: 30303 Registrant Country: US Registrant Phone: +1.4048275000 Registrant Phone Ext: Registrant Fax: +1.4048271995 Registrant Fax Ext: Registrant Email: [email protected] Registry Admin ID: Admin Name: Domain Name Manager Admin Organization: Turner Broadcasting System, Inc. Admin Street: One CNN Center Admin City: Atlanta Admin State/Province: GA Admin Postal Code: 30303 Admin Country: US Admin Phone: +1.4048275000 Admin Phone Ext: Admin Fax: +1.4048271995 Admin Fax Ext: Admin Email: [email protected] Registry Tech ID: Tech Name: TBS Server Operations Tech Organization: Turner Broadcasting System, Inc. Tech Street: One CNN Center Tech City: Atlanta Tech State/Province: GA Tech Postal Code: 30303 Tech Country: US Tech Phone: +1.4048275000 Tech Phone Ext: Tech Fax: +1.4048271593 Tech Fax Ext: Tech Email: [email protected] Name Server: ns-576.awsdns-08.net Name Server: ns-1086.awsdns-07.org Name Server: ns-47.awsdns-05.com Name Server: ns-1630.awsdns-11.co.uk DNSSEC: unsigned
위 결과는 요약 정보와 거의 동일하지만, 등록자, 관리 담당자 및 기술 담당자의 연락처 세부 정보에 대한 추가 섹션을 제공합니다.
등록자 이름은 ‘도메인 이름 관리자’로 지정되어 있습니다. 때때로 회사는 비용을 지불하고 등록 대행자가 이 목적으로 유지하는 일반 이름으로 도메인을 등록하도록 선택합니다. 여기도 마찬가지인 것으로 보입니다. 그러나 등록자의 주소가 ‘One CNN Center’이므로 등록자가 누구인지는 분명합니다.
IP 주소로 whois 조회하기
IP 주소를 사용하여 whois 조회를 수행하는 방법은 도메인 이름과 함께 사용하는 것만큼 간단합니다. whois 명령어 뒤에 IP 주소를 지정하기만 하면 됩니다.
whois 205.251.242.103
다음은 whois가 반환한 결과입니다.
NetRange: 205.251.192.0 - 205.251.255.255 CIDR: 205.251.192.0/18 NetName: AMAZON-05 NetHandle: NET-205-251-192-0-1 Parent: NET205 (NET-205-0-0-0-0) NetType: Direct Allocation OriginAS: AS16509, AS39111, AS7224 Organization: Amazon.com, Inc. (AMAZON-4) RegDate: 2010-08-27 Updated: 2015-09-24 Ref: https://rdap.arin.net/registry/ip/205.251.192.0 OrgName: Amazon.com, Inc. OrgId: AMAZON-4 Address: 1918 8th Ave City: SEATTLE StateProv: WA PostalCode: 98101-1244 Country: US RegDate: 1995-01-23 Updated: 2020-03-31 Ref: https://rdap.arin.net/registry/entity/AMAZON-4 OrgAbuseHandle: AEA8-ARIN OrgAbuseName: Amazon EC2 Abuse OrgAbusePhone: +1-206-266-4064 OrgAbuseEmail: [email protected] OrgAbuseRef: https://rdap.arin.net/registry/entity/AEA8-ARIN OrgNOCHandle: AANO1-ARIN OrgNOCName: Amazon AWS Network Operations OrgNOCPhone: +1-206-266-4064 OrgNOCEmail: [email protected] OrgNOCRef: https://rdap.arin.net/registry/entity/AANO1-ARIN OrgRoutingHandle: ADR29-ARIN OrgRoutingName: AWS Dogfish Routing OrgRoutingPhone: +1-206-266-4064 OrgRoutingEmail: [email protected] OrgRoutingRef: https://rdap.arin.net/registry/entity/ADR29-ARIN OrgRoutingHandle: IPROU3-ARIN OrgRoutingName: IP Routing OrgRoutingPhone: +1-206-266-4064 OrgRoutingEmail: [email protected] OrgRoutingRef: https://rdap.arin.net/registry/entity/IPROU3-ARIN OrgTechHandle: ANO24-ARIN OrgTechName: Amazon EC2 Network Operations OrgTechPhone: +1-206-266-4064 OrgTechEmail: [email protected] OrgTechRef: https://rdap.arin.net/registry/entity/ANO24-ARIN RTechHandle: ROLEA19-ARIN RTechName: Role Account RTechPhone: +1-206-266-4064 RTechEmail: [email protected] RTechRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN RAbuseHandle: ROLEA19-ARIN RAbuseName: Role Account RAbusePhone: +1-206-266-4064 RAbuseEmail: [email protected] RAbuseRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN RNOCHandle: ROLEA19-ARIN RNOCName: Role Account RNOCPhone: +1-206-266-4064 RNOCEmail: [email protected] RNOCRef: https://rdap.arin.net/registry/entity/ROLEA19-ARIN
첫 번째 섹션에는 검색한 IP 주소를 소유한 조직에 대한 정보가 포함되어 있습니다 (이 경우 Amazon이 소유한 여러 주소 중 하나). 또한 레지스트리에서 내부적으로 Amazon.com, Inc.를 식별하는 데 사용되는 일부 식별자도 제공됩니다.
두 번째 섹션에는 Amazon.com, Inc.라는 등록자의 주소와 이름이 포함되어 있습니다. ‘Ref:’ 필드의 웹 주소에는 이 정보가 JSON(JavaScript Object Notation) 형식으로 포함되어 있습니다.
나머지 섹션에는 남용, 네트워크 운영, 트래픽 라우팅 등과 관련된 문제를 보고할 수 있는 연락처 정보가 포함되어 있습니다.
스크립트에서 whois 명령어 사용하기
스크립트에서 whois 명령어를 활용하는 한 가지 예로, 만료 날짜를 확인해야 하는 도메인 목록이 있다고 가정해 보겠습니다. 다음 쉘 스크립트로 이 작업을 수행할 수 있습니다.
편집기에 다음 스크립트를 입력하고 ‘get-expiry.sh’로 저장합니다.
#!/bin/bash DOMAIN_LIST="wdzwdz.com reviewgeek.com lifesavvy.com cloudsavvyit.com" echo "Expiration dates:" for domain in $DOMAIN_LIST do echo -n "$domain :: " whois $domain | grep 'Expiration' | awk '{print $5}' done
다음과 같이 chmod 명령을 사용하여 스크립트에 실행 권한을 부여합니다.
chmod +x get-expiry.sh
스크립트 이름을 입력하여 실행합니다.
./get-expiry.sh
각 도메인의 만료 날짜는 whois 응답에서 grep 명령을 사용하여 추출됩니다. grep 명령은 ‘Expiration’이라는 문자열을 포함하는 줄을 찾습니다. 그리고 awk 명령어를 사용하여 해당 줄에서 다섯 번째 항목을 출력합니다.
편의성과 자동화
온라인에서도 whois 조회를 수행할 수 있습니다. 하지만 터미널 창에서 whois 명령어를 사용하거나 스크립트에서 자동화하면 편리하고 유연한 방식으로 작업을 처리할 수 있습니다.