ipparse 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/data/0.txt +6910 -6910
  2. data/data/116.txt +1068 -1068
  3. data/data/117.txt +495 -495
  4. data/data/118.txt +307 -307
  5. data/data/119.txt +413 -413
  6. data/data/121.txt +1379 -1379
  7. data/data/122.txt +752 -752
  8. data/data/123.txt +1018 -1018
  9. data/data/124.txt +1572 -1572
  10. data/data/125.txt +1401 -1401
  11. data/data/192.txt +1353 -1353
  12. data/data/193.txt +1093 -1093
  13. data/data/194.txt +5066 -5066
  14. data/data/195.txt +5772 -5772
  15. data/data/202.txt +4786 -4786
  16. data/data/203.txt +1392 -1392
  17. data/data/210.txt +2371 -2371
  18. data/data/211.txt +4043 -4043
  19. data/data/212.txt +3112 -3112
  20. data/data/213.txt +1244 -1244
  21. data/data/217.txt +1014 -1014
  22. data/data/218.txt +25238 -25238
  23. data/data/219.txt +7886 -7886
  24. data/data/220.txt +0 -0
  25. data/data/221.txt +7405 -7405
  26. data/data/222.txt +9953 -9953
  27. data/data/58.txt +2359 -2359
  28. data/data/59.txt +1924 -1924
  29. data/data/60.txt +2967 -2967
  30. data/data/61.txt +15853 -15853
  31. data/data/62.txt +1489 -1489
  32. data/data/80.txt +757 -757
  33. data/data/81.txt +549 -549
  34. data/ipparse.gemspec +1 -1
  35. data/lib/ipparse.rb +9 -12
  36. data/lib/version.rb +1 -1
  37. data/test/test_ipparse.rb +2 -2
  38. metadata +1 -1
data/ipparse.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{ipparse}
5
- s.version = "0.0.2"
5
+ s.version = "0.0.3"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Zhang Jinzhu"]
data/lib/ipparse.rb CHANGED
@@ -12,8 +12,8 @@ class IPParse
12
12
  @@data[f] ||= File.exist?(file) ? File.new(file).to_a : false
13
13
 
14
14
  if @@data[f]
15
- addr = dichotomizing(@@data[f],f == 0 ? ip : ip[4,ip.length])
16
- return addr.strip if addr
15
+ addr = dichotomizing(@@data[f],ip)
16
+ return addr if addr
17
17
  end
18
18
  end
19
19
 
@@ -22,21 +22,18 @@ class IPParse
22
22
 
23
23
  protected
24
24
  def self.dichotomizing(arg,ip)
25
- size = arg.size
26
- cen = size/2
25
+ cen = arg.size/2
26
+ cur = arg[cen]
27
27
 
28
- # '001.053.000.000 001.153.255.255 IANA' < '001.053.000.000' + '1'
29
- # reduce 'string'.split call
30
- return dichotomizing(arg[0...cen],ip) if size != 1 && (arg[cen] > ip + '1')
31
- x = arg[cen].split(/\s+/,3)
32
- return (x[0]..x[1]).include?(ip) ? x[2] : false if size == 1
33
- return dichotomizing(arg[cen...size],ip) if x[1] < ip
34
- return x[2]
28
+ return (cur[0,15]..cur[16,15]).include?(ip) ? cur[32...-1] : false if cen == 0
29
+ return dichotomizing(arg[0...cen],ip) if cur[0,15] > ip
30
+ return dichotomizing(arg[cen..-1],ip) if cur[16,15] < ip
31
+ return arg[cen][32...-1]
35
32
  end
36
33
 
37
34
  def self.format(ip)
38
35
  ip.to_s.split('.').inject([]) do |s,x|
39
- s << [('%03s' % x).gsub(/ /,'0')]
36
+ s << x.rjust(3,'0')
40
37
  end.join('.')
41
38
  end
42
39
  end
data/lib/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module IPParse
2
- VERSION = '0.0.2'
2
+ VERSION = '0.0.3'
3
3
  end
data/test/test_ipparse.rb CHANGED
@@ -5,9 +5,9 @@ class TestIPParse < Test::Unit::TestCase
5
5
  def test_parse
6
6
  assert_equal IPParse.parse('222.153.3'),false
7
7
  ips = {
8
- "178.61.84.32 " => "Unknown",
8
+ "178.61.84.32" => "Unknown",
9
9
  "218.58.88.175" => "山东省青岛市开发区",
10
- "212.1.1.1 " => "意大利",
10
+ "212.1.1.1" => "意大利",
11
11
  "192.245.148.0" => "阿尔及利亚",
12
12
  "116.254.254.0" => "广东省广州市",
13
13
  "116.254.254.0" => "广东省广州市",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ipparse
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zhang Jinzhu