arpscanner 0.2.1 → 0.3.0

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
2
  SHA256:
3
- metadata.gz: 97858867144bf85b8c5713cddc05e17dff2b8a41abcdf1d7b352c1479665aa7f
4
- data.tar.gz: d2e1f70e6f8b697ecc367159018539610ffab58adeb2672d5c06b2bf3d993175
3
+ metadata.gz: 79412d2b6cbd20c5aed889a22213156630d39bea4b69cba50810382ac7fd8e1a
4
+ data.tar.gz: 0f770e3e16c96f0a34454a21be2e7a50bca2867a40d609dd231a81c876169542
5
5
  SHA512:
6
- metadata.gz: b21fcc73d53610979f449ed57475b83c1d2abd902b66c138c04347cad3b03797a487c0bce112b7c4358d571642b3874a542d2f873e4d3e36e4f2979b9914fcd0
7
- data.tar.gz: 48a1646137cddd7533889b1815a344f4da81eedb905486e2043079fe6c25fc194687ee79c0cb254a3059841a1110938faa28e3132762f95b50c3159d95d7584d
6
+ metadata.gz: 68d1bd4c340df4fd9463f6f13f60f14b2dd8e635d5f3f1aed665ba3aa10a4d6c589be63c725e00ea84a62b1323f4e72b141cac7c8face72e4b46c16f63e5c670
7
+ data.tar.gz: a268575887f08bccb4af0bed2fa668d4ca1d1f1a34f3a7feb5cf6a87d7192a3c209e088cd57581a98c1badd5185f198115790b3ff3ec60e7efd432d26b00226e
Binary file
data.tar.gz.sig CHANGED
Binary file
@@ -2,18 +2,21 @@
2
2
 
3
3
  # file: arpscanner.rb
4
4
 
5
+ require 'resolv' # resolv is a built-in Ruby library
5
6
  require 'dynarex'
6
7
 
8
+
7
9
  class ArpScanner
8
10
  using ColouredText
9
11
 
10
12
  # options:
11
13
  # nic: e.g. eth0, enp2s0f0
12
14
  #
13
- def initialize(nic: `ip addr`[/(?<=global )\w+/], vendors: {})
15
+ def initialize(nic: `ip addr`[/(?<=global )\w+/], vendors: {},
16
+ nameserver: nil)
14
17
 
15
18
  package = 'arp-scan'
16
- @vendors = vendors
19
+ @vendors, @nameserver = vendors, nameserver
17
20
 
18
21
  found = `dpkg --get-selections | grep #{package}`
19
22
 
@@ -28,8 +31,29 @@ class ArpScanner
28
31
  def scan()
29
32
 
30
33
  a = `#{@arpscan_cmd}`.lines
34
+
35
+ a2 = a[2..-4].map do |x|
31
36
 
32
- a2 = a[2..-3].map {|x| %i(ip mac mfr).zip(x.chomp.split("\t")).to_h}
37
+ r = %i(ip mfr mac).zip(x.chomp.split("\t").values_at(0,2,1))
38
+
39
+ if @nameserver then
40
+
41
+ begin
42
+ hostname = Resolv::DNS.new(:nameserver => [@nameserver]).getname(r[0][1]).to_s
43
+ rescue
44
+ hostname = ''
45
+ puts ($!).to_s.warning
46
+ end
47
+
48
+ r.insert(1, [:hostname, hostname])
49
+
50
+ else
51
+ %i(ip mfr mac).zip(x.chomp.split("\t")).to_h
52
+ end
53
+
54
+ r.to_h
55
+
56
+ end
33
57
 
34
58
  # Add additional vendors
35
59
  h = {/^b8:27:eb:/ => 'Raspberry Pi Foundation'}.merge(@vendors)
@@ -42,8 +66,7 @@ class ArpScanner
42
66
 
43
67
  end
44
68
 
45
- @dx = Dynarex.new
46
- @dx.import a2
69
+ Dynarex.new.import a2
47
70
 
48
71
  end
49
72
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: arpscanner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -11,31 +11,31 @@ cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIEXjCCAsagAwIBAgIBATANBgkqhkiG9w0BAQsFADAsMSowKAYDVQQDDCFnZW1t
14
- YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMTgwODI4MTIxMzM3WhcN
15
- MTkwODI4MTIxMzM3WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
- cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQCo9T21
17
- ariGi2Myv1g1Dppzx+iV4T23Uc5O+JGstZ+TXz7CJ9vrL1w9WSp5jT0Qb3TSdNx1
18
- EoKSGvIxMrwFGJv5Uo0yuOOvqRFYe3V8pIYiERPGiQK5cRjx0nA3AWIGnbg3qLkd
19
- ac1bcyalNrq86qjP1AIJavUAG3Y478xlZueKdsT2DJ+2zEPfq+V6vIbtEeeK7zCs
20
- 0Fewe9Nd+mCd3wSZLaFRzEf1W2BJ2ThO+IYKrfndcJE5En8g8GCBBqApkbimDaI2
21
- pQdBYFRJ8naTkKsTDZv0eD4ex2nxQCU3PrCUGu0+UDuZam6IbZiAaXkokhHi5gNw
22
- kZHZZ0C9VarA3WmCzE0DUwjDnSt1SiPFd3zic+WJZ1Vx+FG6aAhdB58qfpRar6sZ
23
- LpWG995DAKibS4w9vOxcedQJ26bYEeJzQ/PdX8apFmnaKNNrGUmGyNfh4zVtBOqn
24
- 9Dd3JrOyQ8lU/O5cr0+wM1T6sUskrA8m2jC9k+LGqhcJcZf9P10VFBKIyrcCAwEA
25
- AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU7/Mn6gNi
26
- DRajy6h2gOHUwI53RdowJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
14
+ YXN0ZXIvREM9amFtZXNyb2JlcnRzb24vREM9ZXUwHhcNMjAwODIyMjE1MjI4WhcN
15
+ MjEwODIyMjE1MjI4WjAsMSowKAYDVQQDDCFnZW1tYXN0ZXIvREM9amFtZXNyb2Jl
16
+ cnRzb24vREM9ZXUwggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC2yZsN
17
+ ZVizvyMG5JScuVhKSEJ9fv33KWpRkiCV7n2D/SUFxFvt/3zk77o7RsZ3cHD0a6P7
18
+ gTt+1HWxxUK4OwIgxpyOAVtg47+ns/e23OTmxBsPNyqp1up/3uNnkwwQQQTkBBqp
19
+ u6o+X6fiptHKIUh/WQF1i4uvhiGkf3BH0Kbvb1L1CSITZMlGuuasWZAwNyOn+rMk
20
+ mjylFhI5Un3cck7+L2iwAjFwR/DuvFLREiYHMDX5BELUXwCGlgtHpa7KEkEfP+8B
21
+ EUYEz219k+9y+RcReWoiDUsHN0q6lbnmNAP7j3vyEulIvLFRNzpLXJ2Z6HjV9wOA
22
+ 9dDEgCC4xkABAQ75E1SVSHkLzvmOSKy1CUT2b0FUoXdkcEAWAX6HSfnUH9GRJOQc
23
+ 8bhYUpi+NIbRT7RWJHyWBz+hauEO/1ggQ4m4ZOadm4yOxJ7LkGcwb0MsECKzFDRR
24
+ Y/EuIEv5rh9sk5Va5wFG5leyUZYmZvGSnpyvRm/XuGDh2vLiAk0xvSOyejMCAwEA
25
+ AaOBijCBhzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQUAPeiepJa
26
+ +c0wMMdqidykpGLmRHAwJgYDVR0RBB8wHYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0
27
27
  c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1hc3RlckBqYW1lc3JvYmVydHNvbi5ldTAN
28
- BgkqhkiG9w0BAQsFAAOCAYEAp6qjRByWp3QKyE/78WHFFNvnzzLt13vEVN14araB
29
- WE/CIzjMQWEAPlP9i82a/TZ4ioMOLVM51C4NQXf4j2V08KzZ3PK6Vkd7E8y17vMc
30
- APs4xqRkgXQnt715IzsZWxJ2U0dACcNoiUyqSN2skOtweIlAW2qUpWzQGtXN/mg3
31
- sWnlfgfPISdtUPJk2Cga91BWM39pww+aDEIDhsKvLJc2aztvi9vmupwBrC0CDaT2
32
- Kxd3bVSUNBcSoM4N6NCkCTmgusLFHl8APUDY0w9Zb6EGs++rAYEduaCXjIbJcGBe
33
- 4NRhLi40Zwerq1FbkMreu4iGgTwtcakIpZjIuTTdYjTG5v6EQbuedj9j3pT0zWJH
34
- kH8vHCwo8/IkFd3vYZdern20mGEDLWgN8REtp2pwsfUYDsS9+J6XRjtG+bFWUPM+
35
- aTmQM8AJ9seUIc+BPRwhd929vJzuE1WgQ0Gc2MU0G5aJ+/0K21fbir9VFI2ZpvGE
36
- Ms+yveDauKPyg65TdKVA/0pV
28
+ BgkqhkiG9w0BAQsFAAOCAYEADBzb0y9myCatops5l7QFHUp7jzLiBTBz6o4GwWky
29
+ dGe8tTfuDHQOk+m9WvLKtTZ2XCychu3yTruFXrHFB8b23SndrYgwvvb2mDNQT6bo
30
+ ltUZrkFYHHgjYUDbLw1ToeTGh882VD2G1d3cooLoN378MMUrM7IV8YisS7vtoRmu
31
+ tVZhYvwP06fS0eedDEVhx5Azi3OLTb5+hORvsnksvL1PlFqrVNO/lOGva2WM4Yt0
32
+ CpaA6lVJl3ypb/15vLrOGthmWlSFuSt4at+OZB5KxtSMclxDz9fq+c3M32uOsTXE
33
+ 07u4GCEVyvcFLBaNf6/ZF3ke24rHm6CMp/mCnFjYdRW3qIBgo0dc6gD+K1JYZThD
34
+ iV+jNLjfVhVAUXJX/n4d1qclFgFcNKQT93vklLApz7QZFzEho0MQcyV7Iq9VxOKw
35
+ cOLTxTEGHP0PrD7OYVyXjy1/2XJC9E3Ca9wr7MWld01vUdMbC0TZaqTGM+7+dejp
36
+ bCPG9KW8LldPMB4NjEePBmN1
37
37
  -----END CERTIFICATE-----
38
- date: 2019-02-19 00:00:00.000000000 Z
38
+ date: 2020-08-22 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: dynarex
@@ -46,7 +46,7 @@ dependencies:
46
46
  version: '1.8'
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: 1.8.2
49
+ version: 1.8.27
50
50
  type: :runtime
51
51
  prerelease: false
52
52
  version_requirements: !ruby/object:Gem::Requirement
@@ -56,7 +56,7 @@ dependencies:
56
56
  version: '1.8'
57
57
  - - ">="
58
58
  - !ruby/object:Gem::Version
59
- version: 1.8.2
59
+ version: 1.8.27
60
60
  description:
61
61
  email: james@jamesrobertson.eu
62
62
  executables: []
@@ -83,7 +83,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
83
83
  - !ruby/object:Gem::Version
84
84
  version: '0'
85
85
  requirements: []
86
- rubygems_version: 3.0.1
86
+ rubygems_version: 3.0.3
87
87
  signing_key:
88
88
  specification_version: 4
89
89
  summary: A wrapper for the package arp-scan. It can detect if a found MAC address
metadata.gz.sig CHANGED
Binary file