network_interface 0.0.2 → 0.0.3

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