2014-07-25 1 views
1

Resolv 라이브러리를 사용하여 'localhost'를 비롯한 호스트 이름을 확인하지만 비 IPv4 주소도 나열합니다. 나는 첫번째 IPv4 주소를 찾고 싶다. 도서관을 보았지만 그렇게 할 방법을 찾지 못했습니다. 누구든지이 작업을 수행 할 방법을 알고 있거나 Net : DNS 또는 dnsruby와 같은 다른 보석을 사용해야합니까? 내가 바로 당신이 Resolv::IPv4::RegexpResolv::IPv6::Regexp 모양 예를 사용할 수 있습니다 이해한다면Ruby resolv 라이브러리 비 IPv4 주소를 제외하는 방법

+1

을, 당신은 단지'ips.reject {뭔가를 할 수 없습니다 ip.is_a? Resolv :: IPv6}'주소 목록에 있습니다. 링크 된 페이지에서'ress.map {| r | r.address}'를 사용하십시오. –

답변

3

: | | IP를 사용하면 링크 된 페이지에서 판단

=> require 'resolv' 
=> p Resolv.getaddress "www.ruby-lang.org" 
#> "23.23.144.121" 
=> ip = "23.23.144.121" 
=> ip =~ Resolv::IPv4::Regex 
#> 0 
=> ip =~ Resolv::IPv6::Regex 
#> nil 
=> case ip 
=> when Resolv::IPv4::Regex 
=> puts "It's a valid IPv4 address." 
=> when Resolv::IPv6::Regex 
=> puts "It's a valid IPv6 address." 
=> else 
=> puts "It's not a valid IP address." 
=> end 
#> It's a valid IPv4 address. 
관련 문제