nicinfo 1.4.1 → 1.5.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: bed82bd19fcdb26ad7a8ecd1e60e7e58322b829d
4
- data.tar.gz: 44e8d9afd8b402f08797276494f15aa97b03a02c
2
+ SHA256:
3
+ metadata.gz: 470a293eeb983a569b1c4c6b4efcf8db8362059964723fdbc0bb6dc92ccd3af0
4
+ data.tar.gz: ecc75c45646580c50bf742d75857d546227a2b52c375229665aa79c8d255d116
5
5
  SHA512:
6
- metadata.gz: 1a1f67bc8329fefe746cb3db8b749f9cadb87bb6d33e1779ac6b7b1e4f28eddfff92f770a9eba32f0dbf8cd572bc52cdcaca8199d1ac6c13a3709388dd387972
7
- data.tar.gz: ad70339067c3b81befa2206aef2e9c0aef63824387c4a480e8ff2af2cd866cc5efe8df0ac2be52455bbe8825e641e0857c98b027d9353caf83bb91a48d14364a
6
+ metadata.gz: c2ed93b9c261ed090e753f1b2ec20c28be87334be110eff77fba25e7ca96c9705320877482c448bfb5a6adf6451555fc1245bbda29ca1c1fd5aa9a0e7aad3baa
7
+ data.tar.gz: 66b285a0c792cb0b4dbabd5d4a62c79039723110c26489bea8f8e1ff1dd45ac7eb4926610faff5ba98ebd64ac4244f9b423e0795424d31fc329b5545f94d9c4c
@@ -315,9 +315,9 @@ cache:
315
315
  bootstrap:
316
316
 
317
317
  # The base or bootstrap URL. Specifying this will bypass all built-in bootstrapping.
318
- #base_url: https://rdap.arin.net/bootstrap
318
+ #base_url: https://rdap-bootstrap.arin.net/bootstrap
319
319
 
320
- help_root_url: https://rdap.arin.net/bootstrap
320
+ help_root_url: https://rdap-bootstrap.arin.net/bootstrap
321
321
 
322
322
  entity_root_url: https://rdap.arin.net/registry
323
323
 
@@ -18,7 +18,7 @@
18
18
 
19
19
  module NicInfo
20
20
 
21
- VERSION = "1.4.1"
21
+ VERSION = "1.5.1"
22
22
  VERSION_LABEL = "NicInfo v." + VERSION
23
23
  COPYRIGHT = "Copyright (c) 2011-2017 American Registry for Internet Numbers (ARIN)"
24
24
  CONFIG_VERSION = 4
@@ -506,9 +506,9 @@
506
506
  ],
507
507
  "links":[
508
508
  {
509
- "value":"https://rdap.arin.net/bootstrap/domain/xn--fo-5ja.example",
509
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/domain/xn--fo-5ja.example",
510
510
  "rel":"self",
511
- "href":"https://rdap.arin.net/bootstrap/domain/xn--fo-5ja.example"
511
+ "href":"https://rdap-bootstrap.arin.net/bootstrap/domain/xn--fo-5ja.example"
512
512
  }
513
513
  ],
514
514
  "port43":"whois.example.net",
@@ -147,9 +147,9 @@
147
147
  ],
148
148
  "links": [
149
149
  {
150
- "value": "https://rdap.arin.net/bootstrap/entity/entity-dnr",
150
+ "value": "https://rdap-bootstrap.arin.net/bootstrap/entity/entity-dnr",
151
151
  "rel": "self",
152
- "href": "https://rdap.arin.net/bootstrap/entity/entity-dnr"
152
+ "href": "https://rdap-bootstrap.arin.net/bootstrap/entity/entity-dnr"
153
153
  }
154
154
  ],
155
155
  "port43": "whois.example.net",
@@ -286,9 +286,9 @@
286
286
  ],
287
287
  "links": [
288
288
  {
289
- "value": "https://rdap.arin.net/bootstrap/entity/foo1",
289
+ "value": "https://rdap-bootstrap.arin.net/bootstrap/entity/foo1",
290
290
  "rel": "self",
291
- "href": "https://rdap.arin.net/bootstrap/entity/foo1"
291
+ "href": "https://rdap-bootstrap.arin.net/bootstrap/entity/foo1"
292
292
  }
293
293
  ],
294
294
  "events": [
@@ -123,9 +123,9 @@
123
123
  ],
124
124
  "links":[
125
125
  {
126
- "value":"https://rdap.arin.net/bootstrap/entity/entity-dnr",
126
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/entity/entity-dnr",
127
127
  "rel":"self",
128
- "href":"https://rdap.arin.net/bootstrap/entity/entity-dnr"
128
+ "href":"https://rdap-bootstrap.arin.net/bootstrap/entity/entity-dnr"
129
129
  }
130
130
  ],
131
131
  "port43":"whois.example.net",
@@ -132,9 +132,9 @@
132
132
  ],
133
133
  "links":[
134
134
  {
135
- "value":"https://rdap.arin.net/bootstrap/entity/foo1",
135
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/entity/foo1",
136
136
  "rel":"self",
137
- "href":"https://rdap.arin.net/bootstrap/entity/foo1"
137
+ "href":"https://rdap-bootstrap.arin.net/bootstrap/entity/foo1"
138
138
  }
139
139
  ],
140
140
  "events":[
@@ -14,7 +14,7 @@
14
14
  ],
15
15
  "links":[
16
16
  {
17
- "value":"https://rdap.arin.net/bootstrap/entity/restricted",
17
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/entity/restricted",
18
18
  "rel":"terms-of-service",
19
19
  "type":"text/html",
20
20
  "href":"http://www.example.com/tos.html"
@@ -28,7 +28,7 @@
28
28
  ],
29
29
  "links":[
30
30
  {
31
- "value":"https://rdap.arin.net/bootstrap/entity/restricted",
31
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/entity/restricted",
32
32
  "rel":"copyright",
33
33
  "type":"text/html",
34
34
  "href":"http://www.example.com/copyright.html"
@@ -43,7 +43,7 @@
43
43
  ],
44
44
  "links":[
45
45
  {
46
- "value":"https://rdap.arin.net/bootstrap/entity/restricted",
46
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/entity/restricted",
47
47
  "rel":"about",
48
48
  "type":"text/html",
49
49
  "href":"https://lists.arin.net/mailman/listinfo/arin-tech-discuss"
@@ -45,9 +45,9 @@
45
45
  ],
46
46
  "links":[
47
47
  {
48
- "value":"https://rdap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example",
48
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example",
49
49
  "rel":"self",
50
- "href":"https://rdap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example"
50
+ "href":"https://rdap-bootstrap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example"
51
51
  }
52
52
  ],
53
53
  "port43":"whois.example.net",
@@ -248,9 +248,9 @@
248
248
  ],
249
249
  "links":[
250
250
  {
251
- "value":"https://rdap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example",
251
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example",
252
252
  "rel":"self",
253
- "href":"https://rdap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example"
253
+ "href":"https://rdap-bootstrap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example"
254
254
  }
255
255
  ],
256
256
  "port43":"whois.example.net",
@@ -43,9 +43,9 @@
43
43
  ],
44
44
  "links":[
45
45
  {
46
- "value":"https://rdap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example",
46
+ "value":"https://rdap-bootstrap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example",
47
47
  "rel":"self",
48
- "href":"https://rdap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example"
48
+ "href":"https://rdap-bootstrap.arin.net/bootstrap/nameserver/ns1.xn--fo-5ja.example"
49
49
  }
50
50
  ],
51
51
  "port43":"whois.example.net",
@@ -131,96 +131,98 @@ module NicInfo
131
131
  def process entity
132
132
  if ( vcard = get_vcard( entity ) ) != nil
133
133
  vcardElements = vcard[ 1 ]
134
- if vcardElements.size == 0
134
+ if vcardElements.nil? || vcardElements.size == 0
135
135
  @config.conf_msgs << "jCard (vCard) is empty."
136
136
  elsif vcardElements[ 0 ][ 0 ] != "version"
137
137
  @config.conf_msgs << "jCard (vCard) does not have required version first element."
138
138
  end
139
- vcardElements.each do |element|
140
- if element[ 0 ] == "fn"
141
- @fns << element[ 3 ]
142
- end
143
- if element[ 0 ] == "n"
144
- name = ""
145
- if element[ 3 ][ -1 ].instance_of? Array
146
- name << element[ 3 ][ -1 ].join( ' ' )
139
+ if !vcardElements.nil?
140
+ vcardElements.each do |element|
141
+ if element[ 0 ] == "fn"
142
+ @fns << element[ 3 ]
147
143
  end
148
- name << ' ' if name[-1] != ' '
149
- name << element[ 3 ][ 1 ]
150
- if element[ 3 ][ 2 ] && !element[ 3 ][ 2 ].empty?
151
- name << " " << element[ 3 ][ 2 ]
144
+ if element[ 0 ] == "n"
145
+ name = ""
146
+ if element[ 3 ][ -1 ].instance_of? Array
147
+ name << element[ 3 ][ -1 ].join( ' ' )
148
+ end
149
+ name << ' ' if name[-1] != ' '
150
+ name << element[ 3 ][ 1 ]
151
+ if element[ 3 ][ 2 ] && !element[ 3 ][ 2 ].empty?
152
+ name << " " << element[ 3 ][ 2 ]
153
+ end
154
+ if element[ 3 ][ 3 ] && !element[ 3 ][ 3 ].empty?
155
+ name << " " << element[ 3 ][ 3 ]
156
+ end
157
+ name << " " << element[ 3 ][ 0 ]
158
+ if element[ 3 ][ -2 ].instance_of? Array
159
+ name << " " << element[ 3 ][ -2 ].join( ' ' )
160
+ end
161
+ @names << name.strip
152
162
  end
153
- if element[ 3 ][ 3 ] && !element[ 3 ][ 3 ].empty?
154
- name << " " << element[ 3 ][ 3 ]
163
+ if element[ 0 ] == "tel"
164
+ tel = Tel.new
165
+ if (type = element[ 1 ][ "type" ]) != nil
166
+ tel.type << type if type.instance_of? String
167
+ tel.type = type if type.instance_of? Array
168
+ end
169
+ if (str = element[ 3 ] ).start_with?( "tel:" )
170
+ tel.number=str[ /^tel\:([^;]*)/,1 ]
171
+ tel.ext=str[ /[^;]*ext=(.*)/,1 ]
172
+ else
173
+ tel.number=str
174
+ end
175
+ @phones << tel
155
176
  end
156
- name << " " << element[ 3 ][ 0 ]
157
- if element[ 3 ][ -2 ].instance_of? Array
158
- name << " " << element[ 3 ][ -2 ].join( ' ' )
177
+ if element[ 0 ] == "email"
178
+ email = Email.new
179
+ if (type = element[ 1 ][ "type" ]) != nil
180
+ email.type << type if type.instance_of? String
181
+ email.type = type if type.instance_of? Array
182
+ end
183
+ email.addr=element[ 3 ]
184
+ @emails << email
159
185
  end
160
- @names << name.strip
161
- end
162
- if element[ 0 ] == "tel"
163
- tel = Tel.new
164
- if (type = element[ 1 ][ "type" ]) != nil
165
- tel.type << type if type.instance_of? String
166
- tel.type = type if type.instance_of? Array
186
+ if element[ 0 ] == "adr"
187
+ adr = Adr.new
188
+ if (type = element[ 1 ][ "type" ]) != nil
189
+ adr.type << type if type.instance_of? String
190
+ adr.type = type if type.instance_of? Array
191
+ end
192
+ if (label = element[ 1 ][ "label" ]) != nil
193
+ adr.label = label.split( "\n" )
194
+ else
195
+ adr.pobox=element[ 3 ][ 0 ]
196
+ adr.extended=element[ 3 ][ 1 ]
197
+ adr.street=element[ 3 ][ 2 ]
198
+ adr.locality=element[ 3 ][ 3 ]
199
+ adr.region=element[ 3 ][ 4 ]
200
+ adr.postal=element[ 3 ][ 5 ]
201
+ adr.country=element[ 3 ][ 6 ]
202
+ adr.structured=true
203
+ end
204
+ @adrs << adr
167
205
  end
168
- if (str = element[ 3 ] ).start_with?( "tel:" )
169
- tel.number=str[ /^tel\:([^;]*)/,1 ]
170
- tel.ext=str[ /[^;]*ext=(.*)/,1 ]
171
- else
172
- tel.number=str
206
+ if element[ 0 ] == "kind"
207
+ @kind = element[ 3 ]
173
208
  end
174
- @phones << tel
175
- end
176
- if element[ 0 ] == "email"
177
- email = Email.new
178
- if (type = element[ 1 ][ "type" ]) != nil
179
- email.type << type if type.instance_of? String
180
- email.type = type if type.instance_of? Array
181
- end
182
- email.addr=element[ 3 ]
183
- @emails << email
184
- end
185
- if element[ 0 ] == "adr"
186
- adr = Adr.new
187
- if (type = element[ 1 ][ "type" ]) != nil
188
- adr.type << type if type.instance_of? String
189
- adr.type = type if type.instance_of? Array
209
+ if element[ 0 ] == "title"
210
+ @titles << element[ 3 ]
190
211
  end
191
- if (label = element[ 1 ][ "label" ]) != nil
192
- adr.label = label.split( "\n" )
193
- else
194
- adr.pobox=element[ 3 ][ 0 ]
195
- adr.extended=element[ 3 ][ 1 ]
196
- adr.street=element[ 3 ][ 2 ]
197
- adr.locality=element[ 3 ][ 3 ]
198
- adr.region=element[ 3 ][ 4 ]
199
- adr.postal=element[ 3 ][ 5 ]
200
- adr.country=element[ 3 ][ 6 ]
201
- adr.structured=true
212
+ if element[ 0 ] == "role"
213
+ @roles << element[ 3 ]
202
214
  end
203
- @adrs << adr
204
- end
205
- if element[ 0 ] == "kind"
206
- @kind = element[ 3 ]
207
- end
208
- if element[ 0 ] == "title"
209
- @titles << element[ 3 ]
210
- end
211
- if element[ 0 ] == "role"
212
- @roles << element[ 3 ]
213
- end
214
- if element[ 0 ] == "org"
215
- org = Org.new
216
- if (type = element[ 1 ][ "type" ]) != nil
217
- org.type << type if type.instance_of? String
218
- org.type = type if type.instance_of? Array
215
+ if element[ 0 ] == "org"
216
+ org = Org.new
217
+ if (type = element[ 1 ][ "type" ]) != nil
218
+ org.type << type if type.instance_of? String
219
+ org.type = type if type.instance_of? Array
220
+ end
221
+ names = element[ 3 ]
222
+ org.names << names if names.instance_of? String
223
+ org.names = org.names + names if names.instance_of? Array
224
+ @orgs << org
219
225
  end
220
- names = element[ 3 ]
221
- org.names << names if names.instance_of? String
222
- org.names = org.names + names if names.instance_of? Array
223
- @orgs << org
224
226
  end
225
227
  end
226
228
  if @fns.empty?
@@ -319,7 +319,8 @@ module NicInfo
319
319
  if data == nil
320
320
 
321
321
  @config.logger.trace("Issuing GET for " + url)
322
- uri = URI.parse( URI::encode( url ) )
322
+ p = URI::Parser.new
323
+ uri = URI.parse( p.escape( url ) )
323
324
  req = Net::HTTP::Get.new(uri.request_uri)
324
325
  req["User-Agent"] = NicInfo::VERSION_LABEL
325
326
  req["Accept"] = NicInfo::RDAP_CONTENT_TYPE + ", " + NicInfo::JSON_CONTENT_TYPE
@@ -376,7 +377,8 @@ module NicInfo
376
377
  def get_file_via_http url, file_name, try
377
378
 
378
379
  @config.logger.trace("Downloading " + url + " to " + file_name )
379
- uri = URI.parse( URI::encode( url ) )
380
+ p = URI::Parser.new
381
+ uri = URI.parse( p.escape( url ) )
380
382
  req = Net::HTTP::Get.new(uri.request_uri)
381
383
  req["User-Agent"] = NicInfo::VERSION_LABEL
382
384
  req["Accept"] = NicInfo::JSON_CONTENT_TYPE
@@ -937,7 +939,7 @@ HELP_SUMMARY
937
939
 
938
940
  # Creates a query type
939
941
  def create_resource_url(args, queryType)
940
-
942
+ p = URI::Parser.new
941
943
  path = ""
942
944
  case queryType
943
945
  when QueryType::BY_IP4_ADDR
@@ -959,15 +961,15 @@ HELP_SUMMARY
959
961
  path = tree.find_rest_ref(args[0])
960
962
  raise ArgumentError.new("Unable to find result for " + args[0]) unless path
961
963
  when QueryType::BY_ENTITY_HANDLE
962
- path << "entity/" << URI.escape( args[ 0 ] )
964
+ path << "entity/" << p.escape( args[ 0 ] )
963
965
  when QueryType::SRCH_ENTITY_BY_NAME
964
966
  case args.length
965
967
  when 1
966
- path << "entities?fn=" << URI.escape( args[ 0 ] )
968
+ path << "entities?fn=" << p.escape( args[ 0 ] )
967
969
  when 2
968
- path << "entities?fn=" << URI.escape( args[ 0 ] + " " + args[ 1 ] )
970
+ path << "entities?fn=" << p.escape( args[ 0 ] + " " + args[ 1 ] )
969
971
  when 3
970
- path << "entities?fn=" << URI.escape( args[ 0 ] + " " + args[ 1 ] + " " + args[ 2 ] )
972
+ path << "entities?fn=" << p.escape( args[ 0 ] + " " + args[ 1 ] + " " + args[ 2 ] )
971
973
  end
972
974
  when QueryType::SRCH_DOMAIN_BY_NAME
973
975
  path << "domains?name=" << args[ 0 ]
data/lib/nicinfo/utils.rb CHANGED
@@ -20,8 +20,9 @@ require 'nicinfo/config'
20
20
  module NicInfo
21
21
 
22
22
  def NicInfo.make_safe( url )
23
- safe = URI.escape( url )
24
- safe = URI.escape( safe, "!*'();:@&=+$,/?#[]" )
23
+ p = URI::Parser.new
24
+ safe = p.escape( url )
25
+ safe = p.escape( safe, "!*'();:@&=+$,/?#[]" )
25
26
  return safe
26
27
  end
27
28
 
metadata CHANGED
@@ -1,14 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nicinfo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Newton
8
- autorequire:
8
+ - Garth Dubin
9
+ autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2018-02-12 00:00:00.000000000 Z
12
+ date: 2022-09-29 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: netaddr
@@ -16,20 +17,14 @@ dependencies:
16
17
  requirements:
17
18
  - - "~>"
18
19
  - !ruby/object:Gem::Version
19
- version: '1.5'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 1.5.1
20
+ version: 2.0.4
23
21
  type: :runtime
24
22
  prerelease: false
25
23
  version_requirements: !ruby/object:Gem::Requirement
26
24
  requirements:
27
25
  - - "~>"
28
26
  - !ruby/object:Gem::Version
29
- version: '1.5'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 1.5.1
27
+ version: 2.0.4
33
28
  - !ruby/object:Gem::Dependency
34
29
  name: rainbow
35
30
  requirement: !ruby/object:Gem::Requirement
@@ -59,7 +54,7 @@ dependencies:
59
54
  - !ruby/object:Gem::Version
60
55
  version: 0.8.3
61
56
  description: A command-line RDAP client.
62
- email: andy@arin.net
57
+ email: gdubin@arin.net
63
58
  executables:
64
59
  - nicinfo
65
60
  extensions: []
@@ -120,7 +115,7 @@ homepage: https://github.com/arinlabs/nicinfo
120
115
  licenses:
121
116
  - ISC
122
117
  metadata: {}
123
- post_install_message:
118
+ post_install_message:
124
119
  rdoc_options: []
125
120
  require_paths:
126
121
  - lib
@@ -135,9 +130,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
135
130
  - !ruby/object:Gem::Version
136
131
  version: '0'
137
132
  requirements: []
138
- rubyforge_project:
139
- rubygems_version: 2.5.2.1
140
- signing_key:
133
+ rubygems_version: 3.3.3
134
+ signing_key:
141
135
  specification_version: 4
142
136
  summary: RDAP Client
143
137
  test_files: []