ipparse 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/data/0.txt +6910 -6910
- data/data/116.txt +1068 -1068
- data/data/117.txt +495 -495
- data/data/118.txt +307 -307
- data/data/119.txt +413 -413
- data/data/121.txt +1379 -1379
- data/data/122.txt +752 -752
- data/data/123.txt +1018 -1018
- data/data/124.txt +1572 -1572
- data/data/125.txt +1401 -1401
- data/data/192.txt +1353 -1353
- data/data/193.txt +1093 -1093
- data/data/194.txt +5066 -5066
- data/data/195.txt +5772 -5772
- data/data/202.txt +4786 -4786
- data/data/203.txt +1392 -1392
- data/data/210.txt +2371 -2371
- data/data/211.txt +4043 -4043
- data/data/212.txt +3112 -3112
- data/data/213.txt +1244 -1244
- data/data/217.txt +1014 -1014
- data/data/218.txt +25238 -25238
- data/data/219.txt +7886 -7886
- data/data/220.txt +0 -0
- data/data/221.txt +7405 -7405
- data/data/222.txt +9953 -9953
- data/data/58.txt +2359 -2359
- data/data/59.txt +1924 -1924
- data/data/60.txt +2967 -2967
- data/data/61.txt +15853 -15853
- data/data/62.txt +1489 -1489
- data/data/80.txt +757 -757
- data/data/81.txt +549 -549
- data/ipparse.gemspec +1 -1
- data/lib/ipparse.rb +9 -12
- data/lib/version.rb +1 -1
- data/test/test_ipparse.rb +2 -2
- metadata +1 -1
data/ipparse.gemspec
CHANGED
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],
|
16
|
-
return 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
|
-
|
26
|
-
|
25
|
+
cen = arg.size/2
|
26
|
+
cur = arg[cen]
|
27
27
|
|
28
|
-
|
29
|
-
|
30
|
-
return dichotomizing(arg[
|
31
|
-
|
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 <<
|
36
|
+
s << x.rjust(3,'0')
|
40
37
|
end.join('.')
|
41
38
|
end
|
42
39
|
end
|
data/lib/version.rb
CHANGED
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
|
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" => "广东省广州市",
|