Resolv 클래스
Resolv 클래스
Resolv는 Ruby로 작성된 스레드 인지(thread-aware) DNS 해석기(resolver) 라이브러리예요. Resolv는 Ruby 인터프리터 전체를 막지 않으면서 여러 DNS 요청을 동시에 처리할 수 있어요. libc 해석기를 Resolv로 대체하려면 resolv-replace.rb도 함께 참고해요.
출처: Ruby 3.3 API
본문
Resolv는 DNS 모듈을 직접 사용해서 다양한 DNS 리소스를 조회할 수 있어요.
예제:
p Resolv.getaddress "www.ruby-lang.org"
p Resolv.getname "210.251.121.214"
Resolv::DNS.open do |dns|
ress = dns.getresources "www.ruby-lang.org", Resolv::DNS::Resource::IN::A
p ress.map(&:address)
ress = dns.getresources "ruby-lang.org", Resolv::DNS::Resource::IN::MX
p ress.map { |r| [r.exchange.to_s, r.preference] }
end
알려진 버그 (Bugs)
- NIS는 지원되지 않아요.
/etc/nsswitch.conf는 지원되지 않아요.
상수 (Constants)
AddressRegex: IP 주소를 매칭하는 데 사용하는 주소용Regexp예요.DefaultResolver:Resolv클래스 메서드에 사용되는 기본 해석기예요.VERSION: 버전 문자열이에요.
Public Class Methods
each_address(name, &block)
name에 대한 모든 IP 주소를 순회해요.
each_name(address, &proc)
address에 대한 모든 호스트 이름을 순회해요.
getaddress(name)
name에 대한 첫 번째 IP 주소를 조회해요.
getaddresses(name)
name에 대한 모든 IP 주소를 조회해요.
getname(address)
address의 호스트 이름을 조회해요.
getnames(address)
address에 대한 모든 호스트 이름을 조회해요.
new(resolvers=nil, use_ipv6: nil)
resolvers를 사용해 새 Resolv를 만들어요.
Public Instance Methods
each_address(name) { |name| ... }
name에 대한 모든 IP 주소를 순회해요.
each_name(address) { |name| ... }
address에 대한 모든 호스트 이름을 순회해요.
getaddress(name)
name에 대한 첫 번째 IP 주소를 조회해요. 주소가 없으면 ResolvError를 발생시켜요.
getaddresses(name)
name에 대한 모든 IP 주소를 조회해요.
getname(address)
address의 호스트 이름을 조회해요. 이름이 없으면 ResolvError를 발생시켜요.
getnames(address)
address에 대한 모든 호스트 이름을 조회해요.