tor_detector 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/tor_detector/base.rb +13 -4
- data/lib/tor_detector/version.rb +1 -1
- 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: 405d6d1c00623ec6455b248adb9ee0783213df8c
|
4
|
+
data.tar.gz: f936807a9e3236cc18f9b5484ead958bea29c647
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1e43f5975712ae63f61fe6b7d13192a3ce33e79cf5602410ae98705b420b1d1411f52afa19fd27446f53694b4ca72b1dfa955e8c0e5d7db5cf87f94c2f1d8737
|
7
|
+
data.tar.gz: 7aef5f95edcb4fb2c932e31485e24cc6ea05c92ebdb4f5545c6308a480a42fe9e93b72c7bdc5becdce152ea804f0e7007983dc2250b13ffe9408316883e53b87
|
data/lib/tor_detector/base.rb
CHANGED
@@ -1,23 +1,32 @@
|
|
1
1
|
require 'ipaddr'
|
2
2
|
require 'resolv'
|
3
|
+
require 'timeout'
|
3
4
|
|
4
5
|
module TorDetector
|
5
|
-
|
6
|
+
Error = Class.new(StandardError)
|
7
|
+
MalformedIP = Class.new(Error)
|
8
|
+
DNSTimeout = Class.new(Error)
|
6
9
|
|
7
10
|
# tor_detector = TorDetector::Base.new
|
8
11
|
# tor_detector.call('1.2.3.4')
|
9
12
|
class Base
|
10
13
|
attr_reader :dns_ip,
|
11
|
-
:dns_port
|
14
|
+
:dns_port,
|
15
|
+
:timeout
|
12
16
|
|
13
|
-
def initialize(dns_ip = '8.8.8.8', dns_port = 53)
|
17
|
+
def initialize(dns_ip = '8.8.8.8', dns_port = 53, timeout = 5)
|
14
18
|
@dns_ip = dns_ip
|
15
19
|
@dns_port = dns_port
|
20
|
+
@timeout = timeout
|
16
21
|
end
|
17
22
|
|
18
23
|
def call(ip)
|
19
24
|
IPAddr.new(ip)
|
20
|
-
|
25
|
+
Timeout.timeout(timeout) do
|
26
|
+
Resolv.getaddress(tor_hostname_for(ip)) == positive_tor_ip
|
27
|
+
end
|
28
|
+
rescue Timeout::Error
|
29
|
+
raise DNSTimeout
|
21
30
|
rescue IPAddr::InvalidAddressError
|
22
31
|
raise MalformedIP
|
23
32
|
rescue Errno::EHOSTUNREACH, Errno::ENETUNREACH, Resolv::ResolvError
|
data/lib/tor_detector/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tor_detector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|