arpscanner 0.2.1 → 0.3.0

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 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