nicinfo 1.2.0 → 1.2.1
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/lib/nicinfo/bsfiles/asn.json +18 -6
- data/lib/nicinfo/bsfiles/dns.json +3 -3
- data/lib/nicinfo/constants.rb +1 -1
- data/lib/nicinfo/nicinfo_main.rb +16 -178
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9795d629df0b8254d5212d7e9a7f061a3fd10e67
|
4
|
+
data.tar.gz: f0b0c40fbab2073c77359e3455e275fb0e17ef67
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bd00e71e41d422e1f500cf429f643a58c9baf65e5d345918059a9a103f2f698af2ba6717437023cc702c56f56fdf759aebaa546b5bf269cbf7e9b1574e2a1b9b
|
7
|
+
data.tar.gz: 755ecf67a76d635483a4583aa7605aeb88fa5a6f036afe6d92a5fa63240d8b7dc625a12562ba5a1f8ef9d2713e2e5d669d4a4e74dbfb285d4e632e13c38ac519
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"description": "RDAP bootstrap file for Autonomous System Number allocations",
|
3
|
-
"publication": "
|
3
|
+
"publication": "2017-10-05T15:42:54Z",
|
4
4
|
"services": [
|
5
5
|
[
|
6
6
|
[
|
@@ -324,11 +324,14 @@
|
|
324
324
|
"58368-59391",
|
325
325
|
"63488-63999",
|
326
326
|
"64000-64098",
|
327
|
+
"64297-64395",
|
327
328
|
"131072-132095",
|
328
329
|
"132096-133119",
|
329
330
|
"133120-133631",
|
330
331
|
"133632-134556",
|
331
|
-
"134557-135580"
|
332
|
+
"134557-135580",
|
333
|
+
"135581-136505",
|
334
|
+
"136506-137529"
|
332
335
|
],
|
333
336
|
[
|
334
337
|
"https://rdap.apnic.net/"
|
@@ -1379,7 +1382,9 @@
|
|
1379
1382
|
"62464-63487",
|
1380
1383
|
"64198-64296",
|
1381
1384
|
"393216-394239",
|
1382
|
-
"394240-395164"
|
1385
|
+
"394240-395164",
|
1386
|
+
"395165-396188",
|
1387
|
+
"396189-397212"
|
1383
1388
|
],
|
1384
1389
|
[
|
1385
1390
|
"https://rdap.arin.net/registry",
|
@@ -1624,6 +1629,7 @@
|
|
1624
1629
|
"59392-60415",
|
1625
1630
|
"60416-61439",
|
1626
1631
|
"61952-62463",
|
1632
|
+
"64396-64495",
|
1627
1633
|
"196608-197631",
|
1628
1634
|
"197632-198655",
|
1629
1635
|
"198656-199679",
|
@@ -1631,7 +1637,10 @@
|
|
1631
1637
|
"200192-201215",
|
1632
1638
|
"201216-202239",
|
1633
1639
|
"202240-203263",
|
1634
|
-
"203264-204287"
|
1640
|
+
"203264-204287",
|
1641
|
+
"204288-205211",
|
1642
|
+
"205212-206235",
|
1643
|
+
"206236-207259"
|
1635
1644
|
],
|
1636
1645
|
[
|
1637
1646
|
"https://rdap.db.ripe.net/"
|
@@ -2320,7 +2329,10 @@
|
|
2320
2329
|
"262144-263167",
|
2321
2330
|
"263168-263679",
|
2322
2331
|
"263680-264604",
|
2323
|
-
"264605-265628"
|
2332
|
+
"264605-265628",
|
2333
|
+
"265629-266652",
|
2334
|
+
"266653-267676",
|
2335
|
+
"267677-268700"
|
2324
2336
|
],
|
2325
2337
|
[
|
2326
2338
|
"https://rdap.lacnic.net/rdap/"
|
@@ -2328,4 +2340,4 @@
|
|
2328
2340
|
]
|
2329
2341
|
],
|
2330
2342
|
"version": "1.0"
|
2331
|
-
}
|
2343
|
+
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"description": "RDAP bootstrap file for Domain Name System registrations",
|
3
|
-
"publication": "2017-10-
|
3
|
+
"publication": "2017-10-31T04:42:05Z",
|
4
4
|
"services": [
|
5
5
|
[
|
6
6
|
[
|
@@ -8,7 +8,7 @@
|
|
8
8
|
"net"
|
9
9
|
],
|
10
10
|
[
|
11
|
-
"https://rdap-pilot.verisignlabs.com"
|
11
|
+
"https://rdap-pilot.verisignlabs.com/rdap/v1/"
|
12
12
|
]
|
13
13
|
],
|
14
14
|
[
|
@@ -37,4 +37,4 @@
|
|
37
37
|
]
|
38
38
|
],
|
39
39
|
"version": "1.0"
|
40
|
-
}
|
40
|
+
}
|
data/lib/nicinfo/constants.rb
CHANGED
data/lib/nicinfo/nicinfo_main.rb
CHANGED
@@ -285,7 +285,7 @@ module NicInfo
|
|
285
285
|
end
|
286
286
|
|
287
287
|
# Do an HTTP GET with the path.
|
288
|
-
def get url, try
|
288
|
+
def get url, try, expect_rdap = true
|
289
289
|
|
290
290
|
data = @cache.get(url)
|
291
291
|
if data == nil
|
@@ -310,7 +310,7 @@ module NicInfo
|
|
310
310
|
if @config.config[ NicInfo::SECURITY ][ NicInfo::TRY_INSECURE ]
|
311
311
|
@config.logger.mesg( "Secure connection failed. Trying insecure connection." )
|
312
312
|
uri.scheme = "http"
|
313
|
-
return get( uri.to_s, try )
|
313
|
+
return get( uri.to_s, try, expect_rdap )
|
314
314
|
else
|
315
315
|
raise e
|
316
316
|
end
|
@@ -319,11 +319,13 @@ module NicInfo
|
|
319
319
|
case res
|
320
320
|
when Net::HTTPSuccess
|
321
321
|
content_type = res[ "content-type" ].downcase
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
322
|
+
if expect_rdap
|
323
|
+
unless content_type.include?(NicInfo::RDAP_CONTENT_TYPE) or content_type.include?(NicInfo::JSON_CONTENT_TYPE)
|
324
|
+
raise Net::HTTPServerException.new("Bad Content Type", res)
|
325
|
+
end
|
326
|
+
if content_type.include? NicInfo::JSON_CONTENT_TYPE
|
327
|
+
@config.conf_msgs << "Server responded with non-RDAP content type but it is JSON"
|
328
|
+
end
|
327
329
|
end
|
328
330
|
data = res.body
|
329
331
|
@cache.create_or_update(url, data)
|
@@ -331,7 +333,7 @@ module NicInfo
|
|
331
333
|
if res.code == "301" or res.code == "302" or res.code == "303" or res.code == "307" or res.code == "308"
|
332
334
|
res.error! if try >= 5
|
333
335
|
location = res["location"]
|
334
|
-
return get( location, try + 1)
|
336
|
+
return get( location, try + 1, expect_rdap)
|
335
337
|
end
|
336
338
|
res.error!
|
337
339
|
end #end case
|
@@ -426,7 +428,7 @@ module NicInfo
|
|
426
428
|
|
427
429
|
if @config.options.argv[0] == '.'
|
428
430
|
@config.logger.mesg( "Obtaining current IP Address...")
|
429
|
-
data = get("https://stat.ripe.net/data/whats-my-ip/data.json", 0)
|
431
|
+
data = get("https://stat.ripe.net/data/whats-my-ip/data.json", 0, false )
|
430
432
|
json_data = JSON.load(data)
|
431
433
|
|
432
434
|
if json_data["data"] == nil || json_data["data"]["ip"] == nil
|
@@ -434,6 +436,7 @@ module NicInfo
|
|
434
436
|
@config.logger.mesg("Unable to determine your IP Address. You must specify it.")
|
435
437
|
exit
|
436
438
|
elsif
|
439
|
+
@config.logger.mesg("Your IP address is " + json_data["data"]["ip"])
|
437
440
|
@config.options.argv[0] = json_data["data"]["ip"]
|
438
441
|
end
|
439
442
|
end
|
@@ -500,172 +503,6 @@ module NicInfo
|
|
500
503
|
display_rdap_query( json_data, true )
|
501
504
|
end
|
502
505
|
|
503
|
-
=begin
|
504
|
-
if @config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] == nil && !@config.options.url
|
505
|
-
bootstrap = Bootstrap.new( @config )
|
506
|
-
qtype = @config.options.query_type
|
507
|
-
if qtype == QueryType::BY_SERVER_HELP
|
508
|
-
qtype = guess_query_value_type( @config.options.argv )
|
509
|
-
end
|
510
|
-
case qtype
|
511
|
-
when QueryType::BY_IP4_ADDR
|
512
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_ip( @config.options.argv[ 0 ] )
|
513
|
-
when QueryType::BY_IP6_ADDR
|
514
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_ip( @config.options.argv[ 0 ] )
|
515
|
-
when QueryType::BY_IP4_CIDR
|
516
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_ip( @config.options.argv[ 0 ] )
|
517
|
-
when QueryType::BY_IP6_CIDR
|
518
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_ip( @config.options.argv[ 0 ] )
|
519
|
-
when QueryType::BY_AS_NUMBER
|
520
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_as( @config.options.argv[ 0 ] )
|
521
|
-
when QueryType::BY_DOMAIN
|
522
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_domain( @config.options.argv[ 0 ] )
|
523
|
-
when QueryType::BY_NAMESERVER
|
524
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_domain( @config.options.argv[ 0 ] )
|
525
|
-
when QueryType::BY_ENTITY_HANDLE
|
526
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_entity( @config.options.argv[ 0 ] )
|
527
|
-
when QueryType::SRCH_ENTITY_BY_NAME
|
528
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = @config.config[ NicInfo::BOOTSTRAP ][ NicInfo::ENTITY_ROOT_URL ]
|
529
|
-
when QueryType::SRCH_DOMAIN_BY_NAME
|
530
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_domain( @config.options.argv[ 0 ] )
|
531
|
-
when QueryType::SRCH_DOMAIN_BY_NSNAME
|
532
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_domain( @config.options.argv[ 0 ] )
|
533
|
-
when QueryType::SRCH_DOMAIN_BY_NSIP
|
534
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = @config.config[ NicInfo::BOOTSTRAP ][ NicInfo::DOMAIN_ROOT_URL ]
|
535
|
-
when QueryType::SRCH_NS_BY_NAME
|
536
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_domain( @config.options.argv[ 0 ] )
|
537
|
-
when QueryType::SRCH_NS_BY_IP
|
538
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = bootstrap.find_url_by_ip( @config.options.argv[ 0 ] )
|
539
|
-
else
|
540
|
-
@config.config[ NicInfo::BOOTSTRAP ][ NicInfo::BOOTSTRAP_URL ] = @config.config[ NicInfo::BOOTSTRAP ][ NicInfo::HELP_ROOT_URL ]
|
541
|
-
end
|
542
|
-
end
|
543
|
-
|
544
|
-
begin
|
545
|
-
rdap_url = nil
|
546
|
-
unless @config.options.url
|
547
|
-
path = create_resource_url(@config.options.argv, @config.options.query_type)
|
548
|
-
rdap_url = make_rdap_url(@config.config[NicInfo::BOOTSTRAP][NicInfo::BOOTSTRAP_URL], path)
|
549
|
-
else
|
550
|
-
rdap_url = @config.options.argv[0]
|
551
|
-
end
|
552
|
-
data = get( rdap_url, 0 )
|
553
|
-
json_data = JSON.load data
|
554
|
-
if (ec = json_data[ NicInfo::NICINFO_DEMO_ERROR ]) != nil
|
555
|
-
res = MyHTTPResponse.new( "1.1", ec, "Demo Exception" )
|
556
|
-
res["content-type"] = NicInfo::RDAP_CONTENT_TYPE
|
557
|
-
res.body=data
|
558
|
-
raise Net::HTTPServerException.new( "Demo Exception", res )
|
559
|
-
end
|
560
|
-
inspect_rdap_compliance json_data
|
561
|
-
cache_self_references json_data
|
562
|
-
if @config.options.output_json
|
563
|
-
@config.logger.raw( DataAmount::TERSE_DATA, data, false )
|
564
|
-
elsif @config.options.json_values
|
565
|
-
@config.options.json_values.each do |value|
|
566
|
-
@config.logger.raw( DataAmount::TERSE_DATA, eval_json_value( value, json_data), false )
|
567
|
-
end
|
568
|
-
else
|
569
|
-
Notices.new.display_notices json_data, @config, @config.options.query_type == QueryType::BY_SERVER_HELP
|
570
|
-
if @config.options.query_type != QueryType::BY_SERVER_HELP
|
571
|
-
result_type = get_query_type_from_result( json_data )
|
572
|
-
if result_type != nil
|
573
|
-
if result_type != @config.options.query_type
|
574
|
-
@config.logger.mesg( "Query type is " + @config.options.query_type + ". Result type is " + result_type + "." )
|
575
|
-
else
|
576
|
-
@config.logger.mesg( "Result type is " + result_type + "." )
|
577
|
-
end
|
578
|
-
@config.options.query_type = result_type
|
579
|
-
elsif json_data[ "errorCode" ] == nil
|
580
|
-
@config.conf_msgs << "Response has no result type."
|
581
|
-
end
|
582
|
-
data_tree = DataTree.new( )
|
583
|
-
case @config.options.query_type
|
584
|
-
when QueryType::BY_IP4_ADDR
|
585
|
-
NicInfo::display_ip( json_data, @config, data_tree )
|
586
|
-
when QueryType::BY_IP6_ADDR
|
587
|
-
NicInfo::display_ip( json_data, @config, data_tree )
|
588
|
-
when QueryType::BY_IP4_CIDR
|
589
|
-
NicInfo::display_ip( json_data, @config, data_tree )
|
590
|
-
when QueryType::BY_IP6_CIDR
|
591
|
-
NicInfo::display_ip( json_data, @config, data_tree )
|
592
|
-
when QueryType::BY_IP
|
593
|
-
NicInfo::display_ip( json_data, @config, data_tree )
|
594
|
-
when QueryType::BY_AS_NUMBER
|
595
|
-
NicInfo::display_autnum( json_data, @config, data_tree )
|
596
|
-
when "NicInfo::DsData"
|
597
|
-
NicInfo::display_ds_data( json_data, @config, data_tree )
|
598
|
-
when "NicInfo::KeyData"
|
599
|
-
NicInfo::display_key_data( json_data, @config, data_tree )
|
600
|
-
when QueryType::BY_DOMAIN
|
601
|
-
NicInfo::display_domain( json_data, @config, data_tree )
|
602
|
-
when QueryType::BY_NAMESERVER
|
603
|
-
NicInfo::display_ns( json_data, @config, data_tree )
|
604
|
-
when QueryType::BY_ENTITY_HANDLE
|
605
|
-
NicInfo::display_entity( json_data, @config, data_tree )
|
606
|
-
when QueryType::SRCH_DOMAINS
|
607
|
-
NicInfo::display_domains( json_data, @config, data_tree )
|
608
|
-
when QueryType::SRCH_DOMAIN_BY_NAME
|
609
|
-
NicInfo::display_domains( json_data, @config, data_tree )
|
610
|
-
when QueryType::SRCH_DOMAIN_BY_NSNAME
|
611
|
-
NicInfo::display_domains( json_data, @config, data_tree )
|
612
|
-
when QueryType::SRCH_DOMAIN_BY_NSIP
|
613
|
-
NicInfo::display_domains( json_data, @config, data_tree )
|
614
|
-
when QueryType::SRCH_ENTITY_BY_NAME
|
615
|
-
NicInfo::display_entities( json_data, @config, data_tree )
|
616
|
-
when QueryType::SRCH_NS
|
617
|
-
NicInfo::display_nameservers( json_data, @config, data_tree )
|
618
|
-
when QueryType::SRCH_NS_BY_NAME
|
619
|
-
NicInfo::display_nameservers( json_data, @config, data_tree )
|
620
|
-
when QueryType::SRCH_NS_BY_IP
|
621
|
-
NicInfo::display_nameservers( json_data, @config, data_tree )
|
622
|
-
end
|
623
|
-
@config.save_as_yaml( NicInfo::LASTTREE_YAML, data_tree ) if !data_tree.empty?
|
624
|
-
show_search_results_truncated json_data
|
625
|
-
show_conformance_messages
|
626
|
-
show_helpful_messages json_data, data_tree
|
627
|
-
end
|
628
|
-
end
|
629
|
-
@config.logger.end_run
|
630
|
-
rescue JSON::ParserError => a
|
631
|
-
@config.logger.mesg( "Server returned invalid JSON!" )
|
632
|
-
rescue SocketError => a
|
633
|
-
@config.logger.mesg(a.message)
|
634
|
-
rescue ArgumentError => a
|
635
|
-
@config.logger.mesg(a.message)
|
636
|
-
rescue Net::HTTPServerException => e
|
637
|
-
case e.response.code
|
638
|
-
when "200"
|
639
|
-
@config.logger.mesg( e.message )
|
640
|
-
when "401"
|
641
|
-
@config.logger.mesg("Authorization is required.")
|
642
|
-
handle_error_response e.response
|
643
|
-
when "404"
|
644
|
-
@config.logger.mesg("Query yielded no results.")
|
645
|
-
handle_error_response e.response
|
646
|
-
else
|
647
|
-
@config.logger.mesg("Error #{e.response.code}.")
|
648
|
-
handle_error_response e.response
|
649
|
-
end
|
650
|
-
@config.logger.trace("Server response code was " + e.response.code)
|
651
|
-
rescue Net::HTTPFatalError => e
|
652
|
-
case e.response.code
|
653
|
-
when "500"
|
654
|
-
@config.logger.mesg("RDAP server is reporting an internal error.")
|
655
|
-
handle_error_response e.response
|
656
|
-
when "501"
|
657
|
-
@config.logger.mesg("RDAP server does not implement the query.")
|
658
|
-
handle_error_response e.response
|
659
|
-
when "503"
|
660
|
-
@config.logger.mesg("RDAP server is reporting that it is unavailable.")
|
661
|
-
handle_error_response e.response
|
662
|
-
else
|
663
|
-
@config.logger.mesg("Error #{e.response.code}.")
|
664
|
-
handle_error_response e.response
|
665
|
-
end
|
666
|
-
@config.logger.trace("Server response code was " + e.response.code)
|
667
|
-
end
|
668
|
-
=end
|
669
506
|
|
670
507
|
end
|
671
508
|
|
@@ -872,9 +709,10 @@ SUMMARY
|
|
872
709
|
NicInfo is a Registry Data Access Protocol (RDAP) client capable of querying RDAP
|
873
710
|
servers containing IP address, Autonomous System, and Domain name information.
|
874
711
|
|
875
|
-
The general usage is "nicinfo QUERY_VALUE" where the
|
876
|
-
|
877
|
-
but
|
712
|
+
The general usage is "nicinfo QUERY_VALUE" where the QUERY_VALUE is an IP address,
|
713
|
+
autonomous system number, or domain name. The type of query to perform is implicitly
|
714
|
+
determined but maybe explicitly set using the -t option. When the QUERY_VALUE is simply
|
715
|
+
a dot or period character (e.g. "."), the IP address of the client is implied.
|
878
716
|
|
879
717
|
Given the type of query to perform, this program will attempt to use the most appropriate
|
880
718
|
RDAP server it can determine, and follow referrals from that server if necessary.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: nicinfo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.2.
|
4
|
+
version: 1.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Newton
|
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
105
|
version: '0'
|
106
106
|
requirements: []
|
107
107
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
108
|
+
rubygems_version: 2.6.11
|
109
109
|
signing_key:
|
110
110
|
specification_version: 4
|
111
111
|
summary: RDAP Client
|