wmap 2.7.2 → 2.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +10 -16
- data/bin/refresh +5 -5
- data/lib/wmap.rb +1 -1
- data/lib/wmap/site_tracker.rb +1 -4
- data/lib/wmap/{wp_tracker.rb → site_tracker/wp_tracker.rb} +41 -4
- data/lib/wmap/url_crawler.rb +1 -1
- data/version.txt +2 -2
- data/wmap.gemspec +2 -2
- metadata +4 -59
- data/ruby_whois_patches/base_cocca2.rb +0 -149
- data/ruby_whois_patches/kero.yachay.pe.rb +0 -120
- data/ruby_whois_patches/whois.PublicDomainRegistry.com.rb +0 -124
- data/ruby_whois_patches/whois.above.com.rb +0 -61
- data/ruby_whois_patches/whois.adamsnames.tc.rb +0 -107
- data/ruby_whois_patches/whois.aeda.net.ae.rb +0 -105
- data/ruby_whois_patches/whois.ai.rb +0 -112
- data/ruby_whois_patches/whois.arnes.si.rb +0 -121
- data/ruby_whois_patches/whois.ascio.com.rb +0 -91
- data/ruby_whois_patches/whois.cnnic.cn.rb +0 -123
- data/ruby_whois_patches/whois.corporatedomains.com.rb +0 -67
- data/ruby_whois_patches/whois.crsnic.net.rb +0 -108
- data/ruby_whois_patches/whois.denic.de.rb +0 -174
- data/ruby_whois_patches/whois.dk-hostmaster.dk.rb +0 -120
- data/ruby_whois_patches/whois.dns.be.rb +0 -134
- data/ruby_whois_patches/whois.dns.lu.rb +0 -129
- data/ruby_whois_patches/whois.dns.pl.rb +0 -150
- data/ruby_whois_patches/whois.dns.pt.rb +0 -119
- data/ruby_whois_patches/whois.domain.kg.rb +0 -126
- data/ruby_whois_patches/whois.domainregistry.my.rb +0 -123
- data/ruby_whois_patches/whois.domreg.lt.rb +0 -110
- data/ruby_whois_patches/whois.dot.tk.rb +0 -140
- data/ruby_whois_patches/whois.hkirc.hk.rb +0 -121
- data/ruby_whois_patches/whois.isnic.is.rb +0 -130
- data/ruby_whois_patches/whois.je.rb +0 -119
- data/ruby_whois_patches/whois.jprs.jp.rb +0 -137
- data/ruby_whois_patches/whois.kenic.or.ke.rb +0 -140
- data/ruby_whois_patches/whois.markmonitor.com.rb +0 -118
- data/ruby_whois_patches/whois.melbourneit.com.rb +0 -58
- data/ruby_whois_patches/whois.nic.as.rb +0 -96
- data/ruby_whois_patches/whois.nic.at.rb +0 -109
- data/ruby_whois_patches/whois.nic.ch.rb +0 -141
- data/ruby_whois_patches/whois.nic.cl.rb +0 -117
- data/ruby_whois_patches/whois.nic.ec.rb +0 -157
- data/ruby_whois_patches/whois.nic.im.rb +0 -120
- data/ruby_whois_patches/whois.nic.it.rb +0 -170
- data/ruby_whois_patches/whois.nic.lv.rb +0 -116
- data/ruby_whois_patches/whois.nic.ly.rb +0 -127
- data/ruby_whois_patches/whois.nic.mu.rb +0 -27
- data/ruby_whois_patches/whois.nic.mx.rb +0 -123
- data/ruby_whois_patches/whois.nic.net.sa.rb +0 -111
- data/ruby_whois_patches/whois.nic.or.kr.rb +0 -101
- data/ruby_whois_patches/whois.nic.tel.rb +0 -129
- data/ruby_whois_patches/whois.nic.tr.rb +0 -133
- data/ruby_whois_patches/whois.nic.us.rb +0 -129
- data/ruby_whois_patches/whois.nic.ve.rb +0 -135
- data/ruby_whois_patches/whois.norid.no.rb +0 -127
- data/ruby_whois_patches/whois.pandi.or.id.rb +0 -118
- data/ruby_whois_patches/whois.psi-usa.info.rb +0 -63
- data/ruby_whois_patches/whois.registro.br.rb +0 -109
- data/ruby_whois_patches/whois.registrygate.com.rb +0 -55
- data/ruby_whois_patches/whois.rrpproxy.net.rb +0 -61
- data/ruby_whois_patches/whois.sgnic.sg.rb +0 -130
- data/ruby_whois_patches/whois.srs.net.nz.rb +0 -166
- data/ruby_whois_patches/whois.tucows.com.rb +0 -70
- data/ruby_whois_patches/whois.twnic.net.tw.rb +0 -133
@@ -1,129 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Ruby Whois
|
3
|
-
#
|
4
|
-
# An intelligent pure Ruby WHOIS client and parser.
|
5
|
-
#
|
6
|
-
# Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
|
7
|
-
#++
|
8
|
-
|
9
|
-
|
10
|
-
require 'whois/record/parser/base'
|
11
|
-
|
12
|
-
|
13
|
-
module Whois
|
14
|
-
class Record
|
15
|
-
class Parser
|
16
|
-
|
17
|
-
#
|
18
|
-
# = whois.nic.us parser
|
19
|
-
#
|
20
|
-
# Parser for the whois.nic.us server.
|
21
|
-
#
|
22
|
-
# NOTE: This parser is just a stub and provides only a few basic methods
|
23
|
-
# to check for domain availability and get domain status.
|
24
|
-
# Please consider to contribute implementing missing methods.
|
25
|
-
# See WhoisNicIt parser for an explanation of all available methods
|
26
|
-
# and examples.
|
27
|
-
#
|
28
|
-
class WhoisNicUs < Base
|
29
|
-
|
30
|
-
property_supported :status do
|
31
|
-
content_for_scanner.scan(/Domain Status:\s+(.+?)\n/).flatten
|
32
|
-
end
|
33
|
-
|
34
|
-
property_supported :available? do
|
35
|
-
!!(content_for_scanner =~ /Not found:/)
|
36
|
-
end
|
37
|
-
|
38
|
-
property_supported :registered? do
|
39
|
-
!available?
|
40
|
-
end
|
41
|
-
|
42
|
-
|
43
|
-
property_supported :created_on do
|
44
|
-
if content_for_scanner =~ /Domain Registration Date:\s+(.+?)\n/
|
45
|
-
Time.parse($1)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
property_supported :updated_on do
|
50
|
-
if content_for_scanner =~ /Domain Last Updated Date:\s+(.+?)\n/
|
51
|
-
Time.parse($1)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
property_supported :expires_on do
|
56
|
-
if content_for_scanner =~ /Domain Expiration Date:\s+(.+?)\n/
|
57
|
-
Time.parse($1)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
|
62
|
-
property_supported :nameservers do
|
63
|
-
content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten.map do |name|
|
64
|
-
Record::Nameserver.new(:name => name.downcase)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
# The following methods are implemented by Yang Li on 01/24/2013
|
69
|
-
# ----------------------------------------------------------------------------
|
70
|
-
property_supported :domain do
|
71
|
-
return $1 if content_for_scanner =~ /Domain Name:\s+(.*)\n/i
|
72
|
-
end
|
73
|
-
|
74
|
-
property_supported :domain_id do
|
75
|
-
return $1 if content_for_scanner =~ /Domain ID:\s+(.*)\n/i
|
76
|
-
end
|
77
|
-
|
78
|
-
property_supported :registrar do
|
79
|
-
reg=Record::Registrar.new
|
80
|
-
content_for_scanner.scan(/^(.*Registrar.*):\s+(.+)\n/).map do |entry|
|
81
|
-
reg["name"] = entry[1] if entry[0] =~ /Sponsoring Registrar$/i
|
82
|
-
reg["organization"] = entry[1] if entry[0] =~ /Sponsoring Registrar$/i
|
83
|
-
reg["url"] = entry[1] if entry[0] =~ /URL/i
|
84
|
-
end
|
85
|
-
return reg
|
86
|
-
end
|
87
|
-
|
88
|
-
property_supported :registrant_contacts do
|
89
|
-
build_contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
|
90
|
-
end
|
91
|
-
|
92
|
-
property_supported :admin_contacts do
|
93
|
-
build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMIN)
|
94
|
-
end
|
95
|
-
|
96
|
-
property_supported :technical_contacts do
|
97
|
-
build_contact("Technical Contact", Whois::Record::Contact::TYPE_TECHNICAL)
|
98
|
-
end
|
99
|
-
|
100
|
-
property_supported :billing_contacts do
|
101
|
-
build_contact("Billing Contact", Whois::Record::Contact::TYPE_BILLING)
|
102
|
-
end
|
103
|
-
|
104
|
-
private
|
105
|
-
|
106
|
-
def build_contact(element, type)
|
107
|
-
reg=Record::Contact.new(:type => type)
|
108
|
-
content_for_scanner.scan(/^(#{element}.*):\s+(.+)\n/).map do |entry|
|
109
|
-
reg["id"]=entry[1] if entry[0] =~ /#{element}\sID/i
|
110
|
-
reg["name"]=entry[1] if entry[0] =~ /#{element}\sName/i
|
111
|
-
reg["organization"]=entry[1] if entry[0]=~ /#{element}\sOrganization/i
|
112
|
-
reg["address"]=entry[1] if entry[0]=~ /#{element}\sAddress1/i
|
113
|
-
reg["city"]= entry[1] if entry[0]=~ /#{element}\sCity/i
|
114
|
-
reg["zip"]=entry[1] if entry[0]=~ /#{element}\sPostal\sCode/i
|
115
|
-
reg["state"]=entry[1] if entry[0]=~ /#{element}\sState\/Province/i
|
116
|
-
reg["country"]=entry[1] if entry[0]=~ /#{element}\sCountry$/i
|
117
|
-
reg["country_code"]=entry[1] if entry[0]=~ /#{element}\sCountry\sCode/i
|
118
|
-
reg["phone"]=entry[1] if entry[0]=~ /#{element}\sPhone\sNumber/i
|
119
|
-
reg["fax"]=entry[1] if entry[0]=~ /#{element}\sFacsimile\sNumber/i
|
120
|
-
reg["email"]=entry[1] if entry[0]=~ /#{element}\sEmail/i
|
121
|
-
end
|
122
|
-
return reg
|
123
|
-
end
|
124
|
-
# ----------------------------------------------------------------------------
|
125
|
-
|
126
|
-
end
|
127
|
-
end
|
128
|
-
end
|
129
|
-
end
|
@@ -1,135 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Ruby Whois
|
3
|
-
#
|
4
|
-
# An intelligent pure Ruby WHOIS client and parser.
|
5
|
-
#
|
6
|
-
# Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
|
7
|
-
#++
|
8
|
-
|
9
|
-
|
10
|
-
require 'whois/record/parser/base'
|
11
|
-
|
12
|
-
|
13
|
-
module Whois
|
14
|
-
class Record
|
15
|
-
class Parser
|
16
|
-
|
17
|
-
#
|
18
|
-
# = whois.nic.ve parser
|
19
|
-
#
|
20
|
-
# Parser for the whois.nic.ve server.
|
21
|
-
#
|
22
|
-
# NOTE: This parser is just a stub and provides only a few basic methods
|
23
|
-
# to check for domain availability and get domain status.
|
24
|
-
# Please consider to contribute implementing missing methods.
|
25
|
-
# See WhoisNicIt parser for an explanation of all available methods
|
26
|
-
# and examples.
|
27
|
-
#
|
28
|
-
class WhoisNicVe < Base
|
29
|
-
|
30
|
-
property_supported :status do
|
31
|
-
if content_for_scanner =~ /Estatus del dominio: (.+?)\n/
|
32
|
-
case $1.downcase
|
33
|
-
when "activo"
|
34
|
-
:registered
|
35
|
-
when "suspendido"
|
36
|
-
:inactive
|
37
|
-
else
|
38
|
-
Whois.bug!(ParserError, "Unknown status `#{$1}'.")
|
39
|
-
end
|
40
|
-
else
|
41
|
-
:available
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
property_supported :available? do
|
46
|
-
!!(content_for_scanner =~ /No match for "(.+?)"/)
|
47
|
-
end
|
48
|
-
|
49
|
-
property_supported :registered? do
|
50
|
-
!available?
|
51
|
-
end
|
52
|
-
|
53
|
-
|
54
|
-
property_supported :created_on do
|
55
|
-
if content_for_scanner =~ /Fecha de Creacion: (.+?)\n/
|
56
|
-
Time.parse($1)
|
57
|
-
end
|
58
|
-
end
|
59
|
-
|
60
|
-
property_supported :updated_on do
|
61
|
-
if content_for_scanner =~ /Ultima Actualizacion: (.+?)\n/
|
62
|
-
Time.parse($1)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
|
66
|
-
property_supported :expires_on do
|
67
|
-
if content_for_scanner =~ /Fecha de Vencimiento: (.+?)\n/
|
68
|
-
Time.parse($1)
|
69
|
-
end
|
70
|
-
end
|
71
|
-
|
72
|
-
property_supported :nameservers do
|
73
|
-
if content_for_scanner =~ /Servidor\(es\) de Nombres de Dominio:\n\n((.+\n)+)\n/
|
74
|
-
$1.scan(/-\s(.*?)\n/).flatten.map do |name|
|
75
|
-
Record::Nameserver.new(:name => name)
|
76
|
-
end
|
77
|
-
end
|
78
|
-
end
|
79
|
-
|
80
|
-
# NEWPROPERTY
|
81
|
-
# def suspended?
|
82
|
-
# end
|
83
|
-
|
84
|
-
# The following methods are implemented by Yang Li on 01/29/2013
|
85
|
-
# ----------------------------------------------------------------------------
|
86
|
-
property_supported :domain do
|
87
|
-
return $1 if content_for_scanner =~ /Nombre de Dominio:\s+(.*)\n/i
|
88
|
-
end
|
89
|
-
|
90
|
-
property_not_supported :domain_id
|
91
|
-
|
92
|
-
property_not_supported :registrar
|
93
|
-
|
94
|
-
property_supported :admin_contacts do
|
95
|
-
build_contact("Contacto Administrativo", Whois::Record::Contact::TYPE_ADMIN)
|
96
|
-
end
|
97
|
-
|
98
|
-
property_supported :registrant_contacts do
|
99
|
-
build_contact("Titular", Whois::Record::Contact::TYPE_REGISTRANT)
|
100
|
-
end
|
101
|
-
|
102
|
-
property_supported :technical_contacts do
|
103
|
-
build_contact("Contacto Tecnico", Whois::Record::Contact::TYPE_TECHNICAL)
|
104
|
-
end
|
105
|
-
|
106
|
-
property_supported :billing_contacts do
|
107
|
-
build_contact("Contacto de Cobranza", Whois::Record::Contact::TYPE_BILLING)
|
108
|
-
end
|
109
|
-
|
110
|
-
private
|
111
|
-
|
112
|
-
def build_contact(element, type)
|
113
|
-
reg=Record::Contact.new(:type => type)
|
114
|
-
if content_for_scanner =~ /#{element}:\s*\n((.+\n)+)\n/i
|
115
|
-
line_num=1
|
116
|
-
$1.split(%r{\n}).each do |line|
|
117
|
-
titles=line.strip if line_num==1
|
118
|
-
reg["name"]=line.strip.split(%r{\t+}).first if line_num==1
|
119
|
-
reg["email"]=line.strip.split(%r{\t+}).last if line_num==1
|
120
|
-
reg["organization"]=line.strip if line_num==2
|
121
|
-
reg["address"]=line.strip if line_num==3
|
122
|
-
reg["city"]=line.strip if line_num==4
|
123
|
-
reg["phone"]=line.strip.split(%r{\s+}).first if line_num==5
|
124
|
-
reg["fax"]=line.split(%r{\s+}).last if line_num==5
|
125
|
-
line_num=line_num+1
|
126
|
-
end
|
127
|
-
end
|
128
|
-
return reg
|
129
|
-
end
|
130
|
-
# ----------------------------------------------------------------------------
|
131
|
-
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
135
|
-
end
|
@@ -1,127 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Ruby Whois
|
3
|
-
#
|
4
|
-
# An intelligent pure Ruby WHOIS client and parser.
|
5
|
-
#
|
6
|
-
# Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
|
7
|
-
#++
|
8
|
-
|
9
|
-
|
10
|
-
require 'whois/record/parser/base'
|
11
|
-
|
12
|
-
|
13
|
-
module Whois
|
14
|
-
class Record
|
15
|
-
class Parser
|
16
|
-
|
17
|
-
#
|
18
|
-
# = whois.norid.no parser
|
19
|
-
#
|
20
|
-
# Parser for the whois.norid.no server.
|
21
|
-
#
|
22
|
-
# NOTE: This parser is just a stub and provides only a few basic methods
|
23
|
-
# to check for domain availability and get domain status.
|
24
|
-
# Please consider to contribute implementing missing methods.
|
25
|
-
# See WhoisNicIt parser for an explanation of all available methods
|
26
|
-
# and examples.
|
27
|
-
#
|
28
|
-
class WhoisNoridNo < Base
|
29
|
-
|
30
|
-
property_supported :status do
|
31
|
-
if available?
|
32
|
-
:available
|
33
|
-
else
|
34
|
-
:registered
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
property_supported :available? do
|
39
|
-
!!(content_for_scanner =~ /% no matches/)
|
40
|
-
end
|
41
|
-
|
42
|
-
property_supported :registered? do
|
43
|
-
!available?
|
44
|
-
end
|
45
|
-
|
46
|
-
|
47
|
-
property_supported :created_on do
|
48
|
-
if content_for_scanner =~ /Created:\s+(.*)\n/
|
49
|
-
Time.parse($1)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
property_supported :updated_on do
|
54
|
-
if content_for_scanner =~ /Last updated:\s+(.*)\n/
|
55
|
-
Time.parse($1)
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
property_not_supported :expires_on
|
60
|
-
|
61
|
-
# The following methods are implemented by Yang Li on 02/12/2013
|
62
|
-
# ----------------------------------------------------------------------------
|
63
|
-
property_supported :domain do
|
64
|
-
return $1 if content_for_scanner =~ /Domain Name\.+:\s+(.*)\n/i
|
65
|
-
end
|
66
|
-
|
67
|
-
property_not_supported :domain_id
|
68
|
-
|
69
|
-
property_supported :registrar do
|
70
|
-
reg=Record::Registrar.new
|
71
|
-
reg["id"] = node("Registrar Handle")
|
72
|
-
return reg
|
73
|
-
end
|
74
|
-
|
75
|
-
property_supported :registrant_contacts do
|
76
|
-
build_contact("Domain Holder Handle", Whois::Record::Contact::TYPE_REGISTRANT)
|
77
|
-
end
|
78
|
-
|
79
|
-
property_supported :admin_contacts do
|
80
|
-
build_contact("Legal\-c Handle", Whois::Record::Contact::TYPE_ADMIN)
|
81
|
-
end
|
82
|
-
|
83
|
-
property_supported :technical_contacts do
|
84
|
-
build_contact("Tech\-c Handle", Whois::Record::Contact::TYPE_TECHNICAL)
|
85
|
-
end
|
86
|
-
|
87
|
-
property_supported :nameservers do
|
88
|
-
content_for_scanner.scan(/Name Server Handle\.+:\s+(.+)\n/).flatten.map do |name|
|
89
|
-
Record::Nameserver.new(:name => name + " - handle reference online at http://www.norid.no/domenenavnbaser/whois/kopirett.html")
|
90
|
-
end
|
91
|
-
end
|
92
|
-
|
93
|
-
property_not_supported :billing_contacts
|
94
|
-
|
95
|
-
private
|
96
|
-
|
97
|
-
def build_contact(element, type)
|
98
|
-
reg=Record::Contact.new(:type => type)
|
99
|
-
reg["id"]=node(element)
|
100
|
-
content_for_scanner.scan(/((.+\n)+)\n/).each do |x|
|
101
|
-
str=x.flatten.join
|
102
|
-
if str.include?(node(element))
|
103
|
-
str.scan(/^(.+?)\.+:\s+(.+)\n/).map do |entry|
|
104
|
-
reg["name"]=entry[1] if entry[0] =~ /Name$/
|
105
|
-
reg["address"]=entry[1] if entry[0]=~ /Post Address/i
|
106
|
-
reg["city"]= entry[1] if entry[0]=~ /Postal Area/i
|
107
|
-
reg["zip"]=entry[1] if entry[0]=~ /Postal Code/i
|
108
|
-
reg["state"]=entry[1] if entry[0]=~ /#{element}\sState\/Province/i
|
109
|
-
reg["country_code"]=entry[1] if entry[0]=~ /Country/i
|
110
|
-
reg["phone"]=entry[1] if entry[0]=~ /Phone Number/i
|
111
|
-
reg["fax"]=entry[1] if entry[0]=~ /Fax Number/i
|
112
|
-
reg["email"]=entry[1] if entry[0]=~ /Email/i
|
113
|
-
end
|
114
|
-
end
|
115
|
-
end
|
116
|
-
return reg
|
117
|
-
end
|
118
|
-
|
119
|
-
def node(element)
|
120
|
-
return $1 if content_for_scanner =~ /^#{element}\.+:\s*(.+)\n/
|
121
|
-
end
|
122
|
-
# ----------------------------------------------------------------------------
|
123
|
-
|
124
|
-
end
|
125
|
-
end
|
126
|
-
end
|
127
|
-
end
|
@@ -1,118 +0,0 @@
|
|
1
|
-
#--
|
2
|
-
# Ruby Whois
|
3
|
-
#
|
4
|
-
# An intelligent pure Ruby WHOIS client and parser.
|
5
|
-
#
|
6
|
-
# Copyright (c) 2009-2012 Simone Carletti <weppos@weppos.net>
|
7
|
-
#++
|
8
|
-
|
9
|
-
require 'whois/record/parser/base'
|
10
|
-
|
11
|
-
module Whois
|
12
|
-
class Record
|
13
|
-
class Parser
|
14
|
-
|
15
|
-
#
|
16
|
-
# = whois.pandi.or.id parser
|
17
|
-
#
|
18
|
-
# Parser for the whois.pandi.or.id server.
|
19
|
-
#
|
20
|
-
# NOTE: This parser is just a stub and provides only a few basic methods
|
21
|
-
# to check for domain availability and get domain status.
|
22
|
-
# Please consider to contribute implementing missing methods.
|
23
|
-
# See WhoisNicIt parser for an explanation of all available methods
|
24
|
-
# and examples.
|
25
|
-
#
|
26
|
-
class WhoisPandiOrId < Base
|
27
|
-
|
28
|
-
property_supported :status do
|
29
|
-
if content_for_scanner =~ /domain-status:\s+(.+)\n/
|
30
|
-
case $1.downcase
|
31
|
-
when "object is active"
|
32
|
-
:registered
|
33
|
-
else
|
34
|
-
Whois.bug!(ParserError, "Unknown status `#{$1}'.")
|
35
|
-
end
|
36
|
-
else
|
37
|
-
:available
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
property_supported :available? do
|
42
|
-
!!(content_for_scanner =~ /^Not found/)
|
43
|
-
end
|
44
|
-
|
45
|
-
property_supported :registered? do
|
46
|
-
!available?
|
47
|
-
end
|
48
|
-
|
49
|
-
property_supported :created_on do
|
50
|
-
if content_for_scanner =~ /Creation Date:\s+(.+)\n/
|
51
|
-
Time.parse($1)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
|
55
|
-
property_supported :updated_on do
|
56
|
-
if content_for_scanner =~ /Last Updated On:\s+(.+)\n/
|
57
|
-
Time.parse($1)
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
property_supported :expires_on do
|
62
|
-
if content_for_scanner =~ /Expiration Date:\s+(.+)\n/
|
63
|
-
Time.parse($1)
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
property_supported :nameservers do
|
68
|
-
content_for_scanner.scan(/^Name Server:\s+(.+)\n/).flatten.map do |name|
|
69
|
-
Record::Nameserver.new(:name => name)
|
70
|
-
end
|
71
|
-
end
|
72
|
-
|
73
|
-
property_supported :domain do
|
74
|
-
return $1 if content_for_scanner =~ /Domain Name:\s+(.*)\n/i
|
75
|
-
end
|
76
|
-
|
77
|
-
property_not_supported :domain_id
|
78
|
-
|
79
|
-
property_supported :registrar do
|
80
|
-
reg=Record::Registrar.new
|
81
|
-
content_for_scanner.scan(/^(.*Registrar.*):\s+(.+)\n/).map do |entry|
|
82
|
-
reg["name"] = entry[1] if entry[0] =~ /Sponsoring/i
|
83
|
-
reg["organization"] = entry[1] if entry[0] =~ /Sponsoring/i
|
84
|
-
end
|
85
|
-
return reg
|
86
|
-
end
|
87
|
-
|
88
|
-
property_supported :registrant_contacts do
|
89
|
-
build_contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
|
90
|
-
end
|
91
|
-
|
92
|
-
property_supported :admin_contacts do
|
93
|
-
build_contact("Admin Contact", Whois::Record::Contact::TYPE_ADMIN)
|
94
|
-
end
|
95
|
-
|
96
|
-
property_supported :technical_contacts do
|
97
|
-
build_contact("Tech Contact", Whois::Record::Contact::TYPE_TECHNICAL)
|
98
|
-
end
|
99
|
-
|
100
|
-
property_supported :billing_contacts do
|
101
|
-
build_contact("Billing Contact", Whois::Record::Contact::TYPE_BILLING)
|
102
|
-
end
|
103
|
-
|
104
|
-
private
|
105
|
-
|
106
|
-
def build_contact(element, type)
|
107
|
-
reg=Record::Contact.new(:type => type)
|
108
|
-
content_for_scanner.scan(/^(#{element}.*):\s+(.+)\n/).map do |entry|
|
109
|
-
reg["id"]=entry[1] if entry[0] =~ /ID/
|
110
|
-
end
|
111
|
-
return reg
|
112
|
-
end
|
113
|
-
|
114
|
-
end
|
115
|
-
|
116
|
-
end
|
117
|
-
end
|
118
|
-
end
|