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,120 +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
|
-
# Parser for the kero.yachay.pe server.
|
18
|
-
#
|
19
|
-
# @note This parser is just a stub and provides only a few basic methods
|
20
|
-
# to check for domain availability and get domain status.
|
21
|
-
# Please consider to contribute implementing missing methods.
|
22
|
-
#
|
23
|
-
# @see Whois::Record::Parser::Example
|
24
|
-
# The Example parser for the list of all available methods.
|
25
|
-
#
|
26
|
-
class KeroYachayPe < Base
|
27
|
-
|
28
|
-
property_supported :status do
|
29
|
-
if content_for_scanner =~ /Status:\s+(.+?)\n/
|
30
|
-
case $1.downcase
|
31
|
-
when "active"
|
32
|
-
:registered
|
33
|
-
when "not registered"
|
34
|
-
:available
|
35
|
-
when "inactive"
|
36
|
-
:inactive
|
37
|
-
else
|
38
|
-
Whois.bug!(ParserError, "Unknown status `#{$1}'.")
|
39
|
-
end
|
40
|
-
else
|
41
|
-
Whois.bug!(ParserError, "Unable to parse status.")
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
|
-
property_supported :available? do
|
46
|
-
status == :available
|
47
|
-
end
|
48
|
-
|
49
|
-
property_supported :registered? do
|
50
|
-
!available?
|
51
|
-
end
|
52
|
-
|
53
|
-
property_not_supported :created_on
|
54
|
-
|
55
|
-
property_not_supported :updated_on
|
56
|
-
|
57
|
-
property_not_supported :expires_on
|
58
|
-
|
59
|
-
property_supported :nameservers do
|
60
|
-
if content_for_scanner =~ /\nName Servers:\n((.+\n)+)\n/
|
61
|
-
$1.split(%r{\n}).map do |name|
|
62
|
-
Record::Nameserver.new(:name => name.strip)
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
|
67
|
-
# Checks whether the response has been throttled.
|
68
|
-
#
|
69
|
-
# @return [Boolean]
|
70
|
-
#
|
71
|
-
# @example
|
72
|
-
# Looup quota exceeded.
|
73
|
-
#
|
74
|
-
def response_throttled?
|
75
|
-
!content_for_scanner.match(/Looup quota exceeded./).nil?
|
76
|
-
end
|
77
|
-
|
78
|
-
# The following methods are implemented by Yang Li on 2/12/2013
|
79
|
-
# ----------------------------------------------------------------------------
|
80
|
-
|
81
|
-
property_supported :registrar do
|
82
|
-
reg=Record::Registrar.new
|
83
|
-
reg["name"] = $1 if content_for_scanner =~ /^Registrar:\s+(.+)\n/
|
84
|
-
return reg
|
85
|
-
end
|
86
|
-
|
87
|
-
property_supported :registrant_contacts do
|
88
|
-
build_contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
|
89
|
-
end
|
90
|
-
|
91
|
-
property_supported :admin_contacts do
|
92
|
-
build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMIN)
|
93
|
-
end
|
94
|
-
|
95
|
-
property_not_supported :technical_contacts
|
96
|
-
|
97
|
-
property_not_supported :billing_contacts
|
98
|
-
|
99
|
-
private
|
100
|
-
|
101
|
-
def build_contact(element, type)
|
102
|
-
reg=Record::Contact.new(:type => type)
|
103
|
-
if content_for_scanner =~ /#{element}:\n((.+\n)+)\n/
|
104
|
-
line_num=1
|
105
|
-
$1.split(%r{\n}).each do |entry|
|
106
|
-
entry=entry.strip
|
107
|
-
reg["name"]=entry if line_num==1
|
108
|
-
reg["organization"]=entry if line_num==1
|
109
|
-
reg["email"]=entry if entry =~ /.+\@.+\.\w+/
|
110
|
-
line_num=line_num+1
|
111
|
-
end
|
112
|
-
end
|
113
|
-
return reg
|
114
|
-
end
|
115
|
-
# ----------------------------------------------------------------------------
|
116
|
-
|
117
|
-
end
|
118
|
-
end
|
119
|
-
end
|
120
|
-
end
|
@@ -1,124 +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
|
-
# The parser was implemented by Yang Li on 02/27/2013
|
10
|
-
|
11
|
-
require 'whois/record/parser/base'
|
12
|
-
|
13
|
-
|
14
|
-
module Whois
|
15
|
-
class Record
|
16
|
-
class Parser
|
17
|
-
|
18
|
-
#
|
19
|
-
# = whois.PublicDomainRegistry.com parser
|
20
|
-
#
|
21
|
-
# Parser for the whois.PublicDomainRegistry.com server.
|
22
|
-
#
|
23
|
-
# NOTE: This parser is just a stub and provides only a few basic methods
|
24
|
-
# to check for domain availability and get domain status.
|
25
|
-
# Please consider to contribute implementing missing methods.
|
26
|
-
# See WhoisNicIt parser for an explanation of all available methods
|
27
|
-
# and examples.
|
28
|
-
#
|
29
|
-
class WhoisPublicdomainregistryCom < Base
|
30
|
-
|
31
|
-
property_supported :status do
|
32
|
-
if available?
|
33
|
-
:available
|
34
|
-
else
|
35
|
-
:registered
|
36
|
-
end
|
37
|
-
end
|
38
|
-
|
39
|
-
property_supported :available? do
|
40
|
-
!(content_for_scanner =~ /Status:LOCKED/)
|
41
|
-
end
|
42
|
-
|
43
|
-
property_supported :registered? do
|
44
|
-
!available?
|
45
|
-
end
|
46
|
-
|
47
|
-
|
48
|
-
property_supported :created_on do
|
49
|
-
if content_for_scanner =~ /Registration Date:\s+(.*)\n/
|
50
|
-
Time.parse($1)
|
51
|
-
end
|
52
|
-
end
|
53
|
-
|
54
|
-
property_not_supported :updated_on
|
55
|
-
|
56
|
-
property_supported :expires_on do
|
57
|
-
if content_for_scanner =~ /Expiration Date:\s+(.*)\n/
|
58
|
-
Time.parse($1)
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
property_supported :domain do
|
63
|
-
return $1 if content_for_scanner =~ /Domain Name:\s+(.*)\n/i
|
64
|
-
end
|
65
|
-
|
66
|
-
property_not_supported :domain_id
|
67
|
-
|
68
|
-
property_supported :registrar do
|
69
|
-
reg=Record::Registrar.new
|
70
|
-
reg["name"] = node("Registrar")
|
71
|
-
reg["url"] = node("Referral URL")
|
72
|
-
return reg
|
73
|
-
end
|
74
|
-
|
75
|
-
property_supported :registrant_contacts do
|
76
|
-
build_contact("Registrant Contact Details", Whois::Record::Contact::TYPE_REGISTRANT)
|
77
|
-
end
|
78
|
-
|
79
|
-
property_supported :admin_contacts do
|
80
|
-
build_contact("Administrative Contact Details", Whois::Record::Contact::TYPE_ADMIN)
|
81
|
-
end
|
82
|
-
|
83
|
-
property_supported :technical_contacts do
|
84
|
-
build_contact("Technical Contact Details", Whois::Record::Contact::TYPE_TECHNICAL)
|
85
|
-
end
|
86
|
-
|
87
|
-
property_supported :billing_contacts do
|
88
|
-
build_contact("Billing Contact Details", Whois::Record::Contact::TYPE_BILLING)
|
89
|
-
end
|
90
|
-
|
91
|
-
private
|
92
|
-
|
93
|
-
def build_contact(element, type)
|
94
|
-
reg=Record::Contact.new(:type => type)
|
95
|
-
if content_for_scanner =~ /^\s*#{element}:\s*\n((.+\n)+)\n/
|
96
|
-
line_num=1
|
97
|
-
$1.split(%r{\n}).each do |line|
|
98
|
-
line=line.strip
|
99
|
-
reg["id"]=$1 if line =~ /(ID#\d+)/
|
100
|
-
reg["name"]=line if line_num==1
|
101
|
-
reg["organization"]=line if line_num==4
|
102
|
-
reg["address"]=line if line_num==5
|
103
|
-
reg["city"]= line.split(',')[0] if line_num==6
|
104
|
-
reg["zip"]= line.split(',')[1].split(%r{\s+})[1] if line_num==6
|
105
|
-
reg["state"]=line.split(',')[1].split(%r{\s+})[0] if line_num==6
|
106
|
-
reg["country_code"]=line if line_num==7
|
107
|
-
reg["phone"]=line.split('Tel.')[1] if line =~ /Tel\./i
|
108
|
-
reg["fax"]=line.split('Fax.')[1] if line =~ /Fax\./i
|
109
|
-
reg["email"]=$1 if line =~ /(\(.+\@\.+\.\w+\))/
|
110
|
-
line_num=line_num+1
|
111
|
-
end
|
112
|
-
end
|
113
|
-
return reg
|
114
|
-
end
|
115
|
-
|
116
|
-
def node(element)
|
117
|
-
return $1 if content_for_scanner =~ /^\s*#{element}\.+:\s*(.+)\n/
|
118
|
-
end
|
119
|
-
# ----------------------------------------------------------------------------
|
120
|
-
|
121
|
-
end
|
122
|
-
end
|
123
|
-
end
|
124
|
-
end
|
@@ -1,61 +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
|
-
# Parser for the whois.above.com server, added by Yang Li 02/11/2013.
|
16
|
-
class WhoisAboveCom < Base
|
17
|
-
|
18
|
-
property_supported :admin_contacts do
|
19
|
-
build_contact("Administrative Contact", Whois::Record::Contact::TYPE_ADMIN)
|
20
|
-
end
|
21
|
-
|
22
|
-
property_supported :registrant_contacts do
|
23
|
-
build_contact("Registrant", Whois::Record::Contact::TYPE_REGISTRANT)
|
24
|
-
end
|
25
|
-
|
26
|
-
property_supported :technical_contacts do
|
27
|
-
build_contact("Technical Contact", Whois::Record::Contact::TYPE_TECHNICAL)
|
28
|
-
end
|
29
|
-
|
30
|
-
property_supported :billing_contacts do
|
31
|
-
build_contact("Billing Contact", Whois::Record::Contact::TYPE_BILLING)
|
32
|
-
end
|
33
|
-
|
34
|
-
private
|
35
|
-
|
36
|
-
def build_contact(element, type)
|
37
|
-
reg=Record::Contact.new(:type => type)
|
38
|
-
if content_for_scanner =~ /^\s+#{element}:\n((.+\n)+)\n/
|
39
|
-
line_num=1
|
40
|
-
$1.split(%r{\n}).each do |line|
|
41
|
-
line=line.strip unless line.nil?
|
42
|
-
reg["name"]=line if line_num==1
|
43
|
-
reg["organization"]=line if line_num==1
|
44
|
-
reg["address"]=line if line_num==2
|
45
|
-
reg["city"]= line if line_num==3
|
46
|
-
reg["state"]=line if line_num==4
|
47
|
-
reg["zip"]=line if line_num==5
|
48
|
-
reg["country_code"]=line if line_num==6
|
49
|
-
reg["phone"]=line.split('Tel.')[1] if line=~ /Tel/i
|
50
|
-
reg["fax"]=line.split('Fax.')[1] if line=~ /Fax/i
|
51
|
-
reg["email"]=line if line =~ /\w+\@.+\.\w+/
|
52
|
-
line_num=line_num+1
|
53
|
-
end
|
54
|
-
end
|
55
|
-
return reg
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,107 +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.adamsnames.tc
|
19
|
-
#
|
20
|
-
# Parser for the whois.adamsnames.tc 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 WhoisAdamsnamesTc < 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 =~ /is not registered/)
|
40
|
-
end
|
41
|
-
|
42
|
-
property_supported :registered? do
|
43
|
-
!available?
|
44
|
-
end
|
45
|
-
|
46
|
-
property_not_supported :created_on
|
47
|
-
|
48
|
-
property_not_supported :updated_on
|
49
|
-
|
50
|
-
property_not_supported :expires_on
|
51
|
-
|
52
|
-
property_supported :nameservers do
|
53
|
-
content_for_scanner.scan(/\s+ns\s+(.+?)\s+\n/).flatten.map do |name|
|
54
|
-
Record::Nameserver.new(:name => name)
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
# The following methods are implemented by Yang Li on 02/26/2013
|
59
|
-
# ----------------------------------------------------------------------------
|
60
|
-
property_supported :domain do
|
61
|
-
return $1 if content_for_scanner =~ /domain name:\s+(.+)\n/i
|
62
|
-
end
|
63
|
-
|
64
|
-
property_not_supported :domain_id
|
65
|
-
|
66
|
-
property_supported :admin_contacts do
|
67
|
-
build_contact("admin", Whois::Record::Contact::TYPE_ADMIN)
|
68
|
-
end
|
69
|
-
|
70
|
-
property_supported :registrant_contacts do
|
71
|
-
build_contact("owner", Whois::Record::Contact::TYPE_REGISTRANT)
|
72
|
-
end
|
73
|
-
|
74
|
-
property_supported :technical_contacts do
|
75
|
-
build_contact("tech", Whois::Record::Contact::TYPE_TECHNICAL)
|
76
|
-
end
|
77
|
-
|
78
|
-
property_supported :billing_contacts do
|
79
|
-
build_contact("billing", Whois::Record::Contact::TYPE_BILLING)
|
80
|
-
end
|
81
|
-
|
82
|
-
private
|
83
|
-
|
84
|
-
def build_contact(element, type)
|
85
|
-
reg=Record::Contact.new(:type => type)
|
86
|
-
if content_for_scanner =~ /^#{element}\-contact:.+\n((.+\n)+)\n/i
|
87
|
-
$1.scan(/^#{element}\-(.+):\s+(.+)\n/).map do |entry|
|
88
|
-
reg["id"]=entry[1] if entry[0] =~ /contact/i
|
89
|
-
reg["name"]=entry[1] if entry[0] =~ /name/i
|
90
|
-
reg["organization"]=entry[1] if entry[0]=~ /organization/i
|
91
|
-
reg["address"]=entry[1] if entry[0]=~ /street/i
|
92
|
-
reg["city"]= entry[1] if entry[0]=~ /city/i
|
93
|
-
reg["zip"]=entry[1] if entry[0]=~ /zip/i
|
94
|
-
reg["country_code"]=entry[1] if entry[0]=~ /country/i
|
95
|
-
reg["phone"]=entry[1] if entry[0]=~ /phone/i
|
96
|
-
reg["fax"]=entry[1] if entry[0]=~ /fax/i
|
97
|
-
reg["email"]=entry[1] if entry[0]=~ /email/i
|
98
|
-
end
|
99
|
-
end
|
100
|
-
return reg
|
101
|
-
end
|
102
|
-
# ----------------------------------------------------------------------------
|
103
|
-
|
104
|
-
end
|
105
|
-
end
|
106
|
-
end
|
107
|
-
end
|
@@ -1,105 +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.aeda.net.ae parser
|
19
|
-
#
|
20
|
-
# Parser for the whois.aeda.net.ae 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 WhoisAedaNetAe < Base
|
29
|
-
|
30
|
-
property_supported :status do
|
31
|
-
if content_for_scanner =~ /Status:\s+(.+?)\n/
|
32
|
-
case $1.downcase
|
33
|
-
when "ok" then :registered
|
34
|
-
else
|
35
|
-
Whois.bug!(ParserError, "Unknown status `#{$1}'.")
|
36
|
-
end
|
37
|
-
else
|
38
|
-
:available
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
property_supported :available? do
|
43
|
-
content_for_scanner.strip == "No Data Found"
|
44
|
-
end
|
45
|
-
|
46
|
-
property_supported :registered? do
|
47
|
-
!available?
|
48
|
-
end
|
49
|
-
|
50
|
-
|
51
|
-
property_not_supported :created_on
|
52
|
-
|
53
|
-
property_not_supported :updated_on
|
54
|
-
|
55
|
-
property_not_supported :expires_on
|
56
|
-
|
57
|
-
|
58
|
-
property_supported :nameservers do
|
59
|
-
content_for_scanner.scan(/Name Server:\s+(.+)\n/).flatten.map do |name|
|
60
|
-
Record::Nameserver.new(:name => name)
|
61
|
-
end
|
62
|
-
end
|
63
|
-
|
64
|
-
# The following methods are implemented by Yang Li on 12/19/2012
|
65
|
-
# ----------------------------------------------------------------------------
|
66
|
-
property_supported :domain do
|
67
|
-
return $1 if content_for_scanner =~ /Domain Name:\s+(.*)\n/i
|
68
|
-
end
|
69
|
-
|
70
|
-
property_not_supported :domain_id
|
71
|
-
|
72
|
-
property_supported :registrar do
|
73
|
-
reg=Record::Registrar.new
|
74
|
-
content_for_scanner.scan(/^(Registrar.*):\s+(.+)\n/).map do |entry|
|
75
|
-
reg["id"] = entry[1] if entry[0] =~ /Registrar\sID/i
|
76
|
-
reg["name"] = entry[1] if entry[0] =~ /Registrar\sName$/i
|
77
|
-
end
|
78
|
-
return reg
|
79
|
-
end
|
80
|
-
|
81
|
-
property_supported :registrant_contacts do
|
82
|
-
build_contact("Registrant Contact", Whois::Record::Contact::TYPE_REGISTRANT)
|
83
|
-
end
|
84
|
-
|
85
|
-
property_supported :technical_contacts do
|
86
|
-
build_contact("Tech Contact", Whois::Record::Contact::TYPE_TECHNICAL)
|
87
|
-
end
|
88
|
-
|
89
|
-
private
|
90
|
-
|
91
|
-
def build_contact(element, type)
|
92
|
-
reg=Record::Contact.new(:type => type)
|
93
|
-
content_for_scanner.scan(/^(#{element}.*):\s+(.+)\n/).map do |entry|
|
94
|
-
reg["id"]=entry[1] if entry[0] =~ /#{element}\sID/i
|
95
|
-
reg["name"]=entry[1] if entry[0] =~ /#{element}\sName/i
|
96
|
-
reg["email"]=entry[1] if entry[0]=~ /#{element}\sEmail/i
|
97
|
-
end
|
98
|
-
return reg
|
99
|
-
end
|
100
|
-
# ----------------------------------------------------------------------------
|
101
|
-
|
102
|
-
end
|
103
|
-
end
|
104
|
-
end
|
105
|
-
end
|