network_interface 0.0.2 → 0.0.3

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
- SHA1:
3
- metadata.gz: 52fb1a0e9f04f0062700dce9cd2afc292c7b15c9
4
- data.tar.gz: ab551e02256081dd51b60606ac8665a4fdac489f
2
+ SHA256:
3
+ metadata.gz: 3d0cb4999f24c11d163ca55348ddeabe91595407a8ca2440ea04c2c4f172e717
4
+ data.tar.gz: d1b2f9f5bec054bc222b77a2a19d72646c844151f9b0bfe2bf4a184d2a1dc90a
5
5
  SHA512:
6
- metadata.gz: bc7398db2eb281e5348898ca0af4e99a53aa0db0eaef22740915dbebfd323a043106cd842c7350e6d0e7394a6bc448df9635a52f4b7c1c4d34d2b626ae11de9c
7
- data.tar.gz: 2dc7d93eed2dfa8a778d64c615619505e0188f10f7f0b505486559fbb7447397f482668496c5a7316067953e3ada5abf70f1d26ac55e6af29d7921c62ce9912c
6
+ metadata.gz: 0a3f59b944c17959dc30d92a86a8730c7993030fd93f8e7d9560d6e23d51b884c6232be64339660343950b80eb26fba5b5fc1d7dd24a94d0125f8d0e25c9afb3
7
+ data.tar.gz: 6f2b20d6e6314a4f86cc5c9cb82ff31bdea177737ff42d5f5457bc07749571a4ed576b72dbb18aed2a8889846ec0fabf1f8db9d72969ee0192d1a8622b0e69f7
checksums.yaml.gz.sig ADDED
@@ -0,0 +1,2 @@
1
+ K�V�O�4j )I������V����"c�<-�C�#����殟U �+�d�R8�"�� ���>�'籂S��Z�4ep��NM��cM_���ce��[�4�A\ ��AO�U����&�8�����L��'��?E�<�h+�z�eJb2-�|HV�1��EKJ�y;�մ���s����h�Mq}�K�?>�o<j7
2
+ B�v���fu��+��
@@ -0,0 +1,60 @@
1
+ name: Verify
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - '*'
7
+ pull_request:
8
+ branches:
9
+ - '*'
10
+
11
+ jobs:
12
+ test:
13
+ timeout-minutes: 40
14
+
15
+ strategy:
16
+ fail-fast: false
17
+ matrix:
18
+ os:
19
+ - ubuntu-20.04
20
+ ruby:
21
+ - '2.5'
22
+ - '2.6'
23
+ - '2.7'
24
+ - '3.0'
25
+ include:
26
+ - { os: ubuntu-latest, ruby: '3.0', docker_image: 'ruby:3.0' }
27
+ env:
28
+ RAILS_ENV: test
29
+
30
+ runs-on: ${{ matrix.os }}
31
+
32
+ name: Ruby ${{ matrix.ruby }} ${{ matrix.docker_image && 'Docker' || matrix.os }}
33
+ steps:
34
+ - name: Checkout code
35
+ uses: actions/checkout@v2
36
+
37
+ - name: Setup Ruby
38
+ if: ${{ !matrix.docker_image }}
39
+ uses: ruby/setup-ruby@v1
40
+ with:
41
+ ruby-version: ${{ matrix.ruby }}
42
+ bundler-cache: true
43
+
44
+ - name: Rake Compile with Bundle
45
+ if: ${{ !matrix.docker_image }}
46
+ run: |
47
+ bundle exec rake compile
48
+
49
+ - name: ${{ matrix.test_cmd }}
50
+ if: ${{ !matrix.docker_image }}
51
+ run: |
52
+ bundle exec rspec
53
+
54
+ - name: Run tests in docker
55
+ if: ${{ matrix.docker_image }}
56
+ env:
57
+ DOCKER_IMAGE: ${{ matrix.docker_image }}
58
+ run: |
59
+ docker network create --ipv6 --subnet 2001:0DB8::/112 ip6net
60
+ docker run --rm --network ip6net -w $(pwd) -v $(pwd):$(pwd) ${DOCKER_IMAGE} /bin/sh -c "ls -lah; apt update; apt install -y git net-tools; bundle install; bundle exec rake compile; bundle exec rspec"
data/Gemfile.lock CHANGED
@@ -1,38 +1,37 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- network_interface (0.0.2)
4
+ network_interface (0.0.3)
5
5
 
6
6
  GEM
7
7
  remote: https://rubygems.org/
8
8
  specs:
9
- diff-lcs (1.3)
10
- rake (12.0.0)
11
- rake-compiler (1.0.4)
9
+ diff-lcs (1.4.4)
10
+ rake (13.0.3)
11
+ rake-compiler (1.1.1)
12
12
  rake
13
- rspec (3.6.0)
14
- rspec-core (~> 3.6.0)
15
- rspec-expectations (~> 3.6.0)
16
- rspec-mocks (~> 3.6.0)
17
- rspec-core (3.6.0)
18
- rspec-support (~> 3.6.0)
19
- rspec-expectations (3.6.0)
13
+ rspec (3.10.0)
14
+ rspec-core (~> 3.10.0)
15
+ rspec-expectations (~> 3.10.0)
16
+ rspec-mocks (~> 3.10.0)
17
+ rspec-core (3.10.1)
18
+ rspec-support (~> 3.10.0)
19
+ rspec-expectations (3.10.1)
20
20
  diff-lcs (>= 1.2.0, < 2.0)
21
- rspec-support (~> 3.6.0)
22
- rspec-mocks (3.6.0)
21
+ rspec-support (~> 3.10.0)
22
+ rspec-mocks (3.10.2)
23
23
  diff-lcs (>= 1.2.0, < 2.0)
24
- rspec-support (~> 3.6.0)
25
- rspec-support (3.6.0)
24
+ rspec-support (~> 3.10.0)
25
+ rspec-support (3.10.2)
26
26
 
27
27
  PLATFORMS
28
28
  ruby
29
29
 
30
30
  DEPENDENCIES
31
- bundler (~> 1.3)
32
31
  network_interface!
33
32
  rake
34
33
  rake-compiler
35
34
  rspec
36
35
 
37
36
  BUNDLED WITH
38
- 1.15.4
37
+ 2.1.4
@@ -1,3 +1,3 @@
1
1
  module NetworkInterface
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
@@ -16,14 +16,17 @@ Gem::Specification.new do |spec|
16
16
  spec.homepage = "https://github.com/rapid7/network_interface"
17
17
  spec.license = "MIT"
18
18
 
19
- spec.files = `git ls-files`.split($/)
19
+ # Specify which files should be added to the gem when it is released.
20
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
+ spec.files = Dir.chdir(File.expand_path(__dir__)) do
22
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{\A(?:test|spec|features|tmp)/}) }
23
+ end
20
24
  spec.extensions = ['ext/network_interface_ext/extconf.rb']
21
25
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
22
26
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
23
27
  spec.require_paths = ["lib"]
24
28
 
25
- spec.add_development_dependency "bundler", "~> 1.3"
26
29
  spec.add_development_dependency "rake"
27
- spec.add_development_dependency "rake-compiler", ">= 0"
30
+ spec.add_development_dependency "rake-compiler"
28
31
  spec.add_development_dependency "rspec"
29
32
  end
data.tar.gz.sig ADDED
Binary file
metadata CHANGED
@@ -1,30 +1,101 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: network_interface
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
  - Brandon Turner
8
8
  - Lance Sanchez
9
9
  autorequire:
10
10
  bindir: bin
11
- cert_chain: []
12
- date: 2017-08-29 00:00:00.000000000 Z
11
+ cert_chain:
12
+ - |
13
+ -----BEGIN CERTIFICATE-----
14
+ MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl
15
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
16
+ d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
17
+ b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG
18
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
19
+ cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi
20
+ MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c
21
+ JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP
22
+ mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+
23
+ wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4
24
+ VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/
25
+ AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB
26
+ AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW
27
+ BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun
28
+ pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
29
+ dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf
30
+ fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm
31
+ NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx
32
+ H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe
33
+ +o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g==
34
+ -----END CERTIFICATE-----
35
+ - |
36
+ -----BEGIN CERTIFICATE-----
37
+ MIIFMDCCBBigAwIBAgIQBAkYG1/Vu2Z1U0O1b5VQCDANBgkqhkiG9w0BAQsFADBl
38
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
39
+ d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv
40
+ b3QgQ0EwHhcNMTMxMDIyMTIwMDAwWhcNMjgxMDIyMTIwMDAwWjByMQswCQYDVQQG
41
+ EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl
42
+ cnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQgSUQgQ29kZSBT
43
+ aWduaW5nIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+NOzHH8O
44
+ Ea9ndwfTCzFJGc/Q+0WZsTrbRPV/5aid2zLXcep2nQUut4/6kkPApfmJ1DcZ17aq
45
+ 8JyGpdglrA55KDp+6dFn08b7KSfH03sjlOSRI5aQd4L5oYQjZhJUM1B0sSgmuyRp
46
+ wsJS8hRniolF1C2ho+mILCCVrhxKhwjfDPXiTWAYvqrEsq5wMWYzcT6scKKrzn/p
47
+ fMuSoeU7MRzP6vIK5Fe7SrXpdOYr/mzLfnQ5Ng2Q7+S1TqSp6moKq4TzrGdOtcT3
48
+ jNEgJSPrCGQ+UpbB8g8S9MWOD8Gi6CxR93O8vYWxYoNzQYIH5DiLanMg0A9kczye
49
+ n6Yzqf0Z3yWT0QIDAQABo4IBzTCCAckwEgYDVR0TAQH/BAgwBgEB/wIBADAOBgNV
50
+ HQ8BAf8EBAMCAYYwEwYDVR0lBAwwCgYIKwYBBQUHAwMweQYIKwYBBQUHAQEEbTBr
51
+ MCQGCCsGAQUFBzABhhhodHRwOi8vb2NzcC5kaWdpY2VydC5jb20wQwYIKwYBBQUH
52
+ MAKGN2h0dHA6Ly9jYWNlcnRzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJ
53
+ RFJvb3RDQS5jcnQwgYEGA1UdHwR6MHgwOqA4oDaGNGh0dHA6Ly9jcmw0LmRpZ2lj
54
+ ZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmwwOqA4oDaGNGh0dHA6
55
+ Ly9jcmwzLmRpZ2ljZXJ0LmNvbS9EaWdpQ2VydEFzc3VyZWRJRFJvb3RDQS5jcmww
56
+ TwYDVR0gBEgwRjA4BgpghkgBhv1sAAIEMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
57
+ d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCgYIYIZIAYb9bAMwHQYDVR0OBBYEFFrEuXsq
58
+ CqOl6nEDwGD5LfZldQ5YMB8GA1UdIwQYMBaAFEXroq/0ksuCMS1Ri6enIZ3zbcgP
59
+ MA0GCSqGSIb3DQEBCwUAA4IBAQA+7A1aJLPzItEVyCx8JSl2qB1dHC06GsTvMGHX
60
+ fgtg/cM9D8Svi/3vKt8gVTew4fbRknUPUbRupY5a4l4kgU4QpO4/cY5jDhNLrddf
61
+ RHnzNhQGivecRk5c/5CxGwcOkRX7uq+1UcKNJK4kxscnKqEpKBo6cSgCPC6Ro8Al
62
+ EeKcFEehemhor5unXCBc2XGxDI+7qPjFEmifz0DLQESlE/DmZAwlCEIysjaKJAL+
63
+ L3J+HNdJRZboWR3p+nRka7LrZkPas7CM1ekN3fYBIM6ZMWM9CBoYs4GbT8aTEAb8
64
+ B4H6i9r5gkn3Ym6hU/oSlBiFLpKR6mhsRDKyZqHnGKSaZFHv
65
+ -----END CERTIFICATE-----
66
+ - |
67
+ -----BEGIN CERTIFICATE-----
68
+ MIIFIzCCBAugAwIBAgIQCMePMbkSxvnPeJhYXIfaxzANBgkqhkiG9w0BAQsFADBy
69
+ MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
70
+ d3cuZGlnaWNlcnQuY29tMTEwLwYDVQQDEyhEaWdpQ2VydCBTSEEyIEFzc3VyZWQg
71
+ SUQgQ29kZSBTaWduaW5nIENBMB4XDTIwMTAwNzAwMDAwMFoXDTIzMTEwNjEyMDAw
72
+ MFowYDELMAkGA1UEBhMCVVMxFjAUBgNVBAgTDU1hc3NhY2h1c2V0dHMxDzANBgNV
73
+ BAcTBkJvc3RvbjETMBEGA1UEChMKUmFwaWQ3IExMQzETMBEGA1UEAxMKUmFwaWQ3
74
+ IExMQzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALNTz4zvAy7h/vQp
75
+ 4dr1txXHlABAagkwYYwTMCtHs5PXsJITx/5SAjx5swuaLfze5kPBNF2YImvFlOXY
76
+ WaB+0PsOnXnaARsDZU683xFlj8izU6IN6VrAHzDLKFBzruJENrOJD/ikbEtbjO/q
77
+ gFbmS9J9v5ohG/pcRSS0t4ZPAwymf8eCp6QsvOKK/Aymp1RhlRaP8N6N5CIpkhz1
78
+ 9p968iCE+DjOXVYxcWE+jE/7uB1dbgrXykNBujMSS3GULOvVEY28n6NCmrPlo23g
79
+ yRjYVJ2Vy14nBqnxDZ/yRIfWRVjWoT9TsAEbe9gY29oDpSCSs4wSmLQd5zGCpZ9h
80
+ r0HDFB8CAwEAAaOCAcUwggHBMB8GA1UdIwQYMBaAFFrEuXsqCqOl6nEDwGD5LfZl
81
+ dQ5YMB0GA1UdDgQWBBTLBL7DTwumVEKtdCdpHVYMXOFeDzAOBgNVHQ8BAf8EBAMC
82
+ B4AwEwYDVR0lBAwwCgYIKwYBBQUHAwMwdwYDVR0fBHAwbjA1oDOgMYYvaHR0cDov
83
+ L2NybDMuZGlnaWNlcnQuY29tL3NoYTItYXNzdXJlZC1jcy1nMS5jcmwwNaAzoDGG
84
+ L2h0dHA6Ly9jcmw0LmRpZ2ljZXJ0LmNvbS9zaGEyLWFzc3VyZWQtY3MtZzEuY3Js
85
+ MEwGA1UdIARFMEMwNwYJYIZIAYb9bAMBMCowKAYIKwYBBQUHAgEWHGh0dHBzOi8v
86
+ d3d3LmRpZ2ljZXJ0LmNvbS9DUFMwCAYGZ4EMAQQBMIGEBggrBgEFBQcBAQR4MHYw
87
+ JAYIKwYBBQUHMAGGGGh0dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBOBggrBgEFBQcw
88
+ AoZCaHR0cDovL2NhY2VydHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkFzc3Vy
89
+ ZWRJRENvZGVTaWduaW5nQ0EuY3J0MAwGA1UdEwEB/wQCMAAwDQYJKoZIhvcNAQEL
90
+ BQADggEBAN+GL5/myPWg7oH4mVrG7/OhXF1MoYQF0ddaNiqaweEHMuKJBQCVZRbL
91
+ 37HojoKXXv2yyRJBCeTB+ojrxX+5PdLVZa0ss7toWzJ2A1poPXZ1eZvm5xeFD32z
92
+ YQaTmmNWNI3PCDTyJ2PXUc+bDiNNwcZ7yc5o78UNRvp9Jxghya17Q76c9Ov9wvnv
93
+ dxxQKWGOQy0m4fBrkyjAyH9Djjn81RbQrqYgPuhd5nD0HjN3VUQLhQbIJrk9TVs0
94
+ EknWpNgVhohbot1lfVAMmIhdtOVaRVcQQixWPwprDj/ydB8ryDMDosIMcw+fkoXU
95
+ 9GJsSaSRRYQ9UUkVL27b64okU8D48m8=
96
+ -----END CERTIFICATE-----
97
+ date: 2023-08-14 00:00:00.000000000 Z
13
98
  dependencies:
14
- - !ruby/object:Gem::Dependency
15
- name: bundler
16
- requirement: !ruby/object:Gem::Requirement
17
- requirements:
18
- - - "~>"
19
- - !ruby/object:Gem::Version
20
- version: '1.3'
21
- type: :development
22
- prerelease: false
23
- version_requirements: !ruby/object:Gem::Requirement
24
- requirements:
25
- - - "~>"
26
- - !ruby/object:Gem::Version
27
- version: '1.3'
28
99
  - !ruby/object:Gem::Dependency
29
100
  name: rake
30
101
  requirement: !ruby/object:Gem::Requirement
@@ -79,6 +150,7 @@ extensions:
79
150
  - ext/network_interface_ext/extconf.rb
80
151
  extra_rdoc_files: []
81
152
  files:
153
+ - ".github/workflows/verify.yml"
82
154
  - ".gitignore"
83
155
  - ".rspec"
84
156
  - Gemfile
@@ -93,8 +165,6 @@ files:
93
165
  - lib/network_interface.rb
94
166
  - lib/network_interface/version.rb
95
167
  - network_interface.gemspec
96
- - spec/netiface_spec.rb
97
- - spec/spec_helper.rb
98
168
  homepage: https://github.com/rapid7/network_interface
99
169
  licenses:
100
170
  - MIT
@@ -114,11 +184,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
114
184
  - !ruby/object:Gem::Version
115
185
  version: '0'
116
186
  requirements: []
117
- rubyforge_project:
118
- rubygems_version: 2.6.13
187
+ rubygems_version: 3.1.4
119
188
  signing_key:
120
189
  specification_version: 4
121
190
  summary: A cross platform gem to help get network interface information
122
- test_files:
123
- - spec/netiface_spec.rb
124
- - spec/spec_helper.rb
191
+ test_files: []
metadata.gz.sig ADDED
Binary file
@@ -1,48 +0,0 @@
1
- require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
-
3
- describe NetworkInterface do
4
-
5
- describe "#interfaces" do
6
- it "should have the same interfaces as the system_interfaces" do
7
- NetworkInterface.interfaces.should include(*system_interfaces_with_addresses.keys)
8
- end
9
- end
10
-
11
- describe "#addresses" do
12
- system_interfaces_with_addresses.each do |interface, hash|
13
- describe "#{friendly_interface_names.key(interface)}" do
14
- if hash.has_key?(:ipv4)
15
- describe "ipv4" do
16
- it "should have an ipv4 address" do
17
- NetworkInterface.addresses(interface).should have_key NetworkInterface::AF_INET
18
- end
19
- it "should match the system interface of #{hash[:ipv4]}" do
20
- NetworkInterface.addresses(interface)[NetworkInterface::AF_INET][0]["addr"].should == hash[:ipv4]
21
- end
22
- end
23
- end
24
- if hash.has_key?(:ipv6)
25
- describe "ipv6" do
26
- it "should have an ipv6 address" do
27
- NetworkInterface.addresses(interface).should have_key NetworkInterface::AF_INET6
28
- end
29
- it "should match the system interface of #{hash[:ipv6]}" do
30
- NetworkInterface.addresses(interface)[NetworkInterface::AF_INET6][0]["addr"].should == hash[:ipv6]
31
- end
32
- end
33
- end
34
- if hash.has_key?(:mac)
35
- describe "MAC address" do
36
- it "should have a MAC address" do
37
- NetworkInterface.addresses(interface).should have_key NetworkInterface::AF_LINK
38
- end
39
- it "should match the system interface of #{hash[:mac]}" do
40
- NetworkInterface.addresses(interface)[NetworkInterface::AF_LINK][0]["addr"].should == hash[:mac]
41
- end
42
- end
43
- end
44
- end
45
- end
46
-
47
- end
48
- end
data/spec/spec_helper.rb DELETED
@@ -1,107 +0,0 @@
1
- $LOAD_PATH.unshift(File.dirname(__FILE__))
2
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), 'lib'))
3
- require 'network_interface'
4
- require 'rspec'
5
- require 'rspec/autorun'
6
-
7
- RSpec.configure do |config|
8
- end
9
-
10
- def friendly_interface_names
11
- interfaces = NetworkInterface.interfaces
12
- interface_names ||= begin
13
- h = {}
14
- interfaces.each do |interface|
15
- info = NetworkInterface.interface_info(interface)
16
- name = if info && info.has_key?('name')
17
- info['name']
18
- else
19
- interface
20
- end
21
- h[name] = interface
22
- end
23
- h
24
- end
25
- interface_names
26
- end
27
-
28
- if RUBY_PLATFORM =~ /i386-mingw32/
29
- def system_interfaces
30
- ipconfig = `ipconfig`
31
- ipconfig_array = ipconfig.split("\n").reject {|s| s.empty?}
32
-
33
- getmac = `getmac -nh`
34
- getmac_array = getmac.split("\n").reject {|s| s.empty?}
35
- getmac_array.map!{|element| element.split(" ")}
36
- getmac_hash = getmac_array.inject({}) do |hash, array|
37
- hash.merge!({array[1][/\{(.*)\}/,1] => array[0].gsub("-",":").downcase})
38
- end
39
-
40
- interfaces = {}
41
- @key = nil
42
- ipconfig_array.each do |element|
43
- if element.start_with? " "
44
- case element
45
- when /IPv6 Address.*: (.*)/
46
- # interfaces[@key][:ipv6] = $1
47
- when /IPv4 Address.*: (.*)/
48
- interfaces[@key][:ipv4] = $1
49
- interfaces[@key][:mac] = getmac_hash[@key[/\{(.*)\}/,1]]
50
- end
51
- elsif element[/Windows IP Configuration/]
52
- elsif element[/Ethernet adapter (.*):/]
53
- @key = friendly_interface_names[$1]
54
- interfaces[@key] = {}
55
- else
56
- @key = element[/(.*):/,1]
57
- interfaces[@key] = {}
58
- end
59
- end
60
-
61
- interfaces
62
- end
63
-
64
- else
65
- def system_interfaces
66
- ifconfig = `/sbin/ifconfig`
67
- ifconfig_array = ifconfig.split("\n")
68
- ifconfig_array.map!{|element| element.split("\n")}
69
- ifconfig_array.flatten!
70
- interfaces = {}
71
- @key = nil
72
- ifconfig_array.each do |element|
73
- if element.start_with?("\t") || element.start_with?(" ")
74
- case element
75
- when /ether ((\w{2}\:){5}(\w{2}))/
76
- interfaces[@key][:mac] = $1
77
- when /inet6 (.*) prefixlen/
78
- interfaces[@key][:ipv6] = $1
79
- when /inet ((\d{1,3}\.){3}\d{1,3}).*broadcast ((\d{1,3}\.){3}\d{1,3})/
80
- interfaces[@key][:ipv4] = $1
81
- interfaces[@key][:broadcast] = $3
82
- when /addr:((\d{1,3}\.){3}\d{1,3})\s+Bcast:((\d{1,3}\.){3}\d{1,3})/i
83
- interfaces[@key][:ipv4] = $1
84
- interfaces[@key][:broadcast] = $3
85
- end
86
- else
87
- @key = element.split(' ').first[/(\w*)/,1]
88
- interfaces[@key] = {}
89
- if element[/HWaddr ((\w{2}\:){5}(\w{2}))/]
90
- interfaces[@key][:mac] = $1
91
- end
92
- end
93
- end
94
- interfaces
95
- end
96
-
97
- end
98
-
99
- def system_interfaces_with_addresses
100
- interfaces = {}
101
- system_interfaces.each do |key, value|
102
- if value.has_key? :ipv4
103
- interfaces[key] = value
104
- end
105
- end
106
- interfaces
107
- end