rabid 0.0.1

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.
Files changed (58) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.rubocop.yml +22 -0
  4. data/.yardopts +4 -0
  5. data/.yardopts-dev +6 -0
  6. data/Gemfile +6 -0
  7. data/Gemfile.lock +56 -0
  8. data/LICENSE.txt +21 -0
  9. data/README.md +15 -0
  10. data/Rakefile +10 -0
  11. data/bigipcookie.gemspec +49 -0
  12. data/bin/rabid +67 -0
  13. data/bin/rabid_console +7 -0
  14. data/bin/rabid_setup +6 -0
  15. data/docs/.nojekyll +0 -0
  16. data/docs/About.md +11 -0
  17. data/docs/CHANGELOG.md +1 -0
  18. data/docs/README.md +13 -0
  19. data/docs/_coverpage.md +14 -0
  20. data/docs/_media/logo.png +0 -0
  21. data/docs/_navbar.md +2 -0
  22. data/docs/_sidebar.md +15 -0
  23. data/docs/index.html +31 -0
  24. data/docs/pages/demo.md +3 -0
  25. data/docs/pages/documentation.md +34 -0
  26. data/docs/pages/install.md +60 -0
  27. data/docs/pages/publishing.md +38 -0
  28. data/docs/pages/quick-start.md +30 -0
  29. data/docs/pages/usage.md +53 -0
  30. data/docs/vendor/docsify.js +1 -0
  31. data/docs/vendor/plugins/emoji.min.js +1 -0
  32. data/docs/vendor/plugins/search.min.js +1 -0
  33. data/docs/vendor/prismjs/components/prism-ruby.min.js +1 -0
  34. data/docs/vendor/themes/vue.css +1 -0
  35. data/docs/why.md +46 -0
  36. data/docs/yard/BigIPCookie/Decode.html +782 -0
  37. data/docs/yard/BigIPCookie.html +159 -0
  38. data/docs/yard/Version.html +126 -0
  39. data/docs/yard/_index.html +138 -0
  40. data/docs/yard/class_list.html +51 -0
  41. data/docs/yard/css/common.css +1 -0
  42. data/docs/yard/css/full_list.css +58 -0
  43. data/docs/yard/css/style.css +496 -0
  44. data/docs/yard/file.LICENSE.html +70 -0
  45. data/docs/yard/file.README.html +109 -0
  46. data/docs/yard/file_list.html +61 -0
  47. data/docs/yard/frames.html +17 -0
  48. data/docs/yard/index.html +109 -0
  49. data/docs/yard/js/app.js +303 -0
  50. data/docs/yard/js/full_list.js +216 -0
  51. data/docs/yard/js/jquery.js +4 -0
  52. data/docs/yard/method_list.html +99 -0
  53. data/docs/yard/top-level-namespace.html +112 -0
  54. data/lib/bigipcookie/version.rb +5 -0
  55. data/lib/bigipcookie.rb +246 -0
  56. data/package-lock.json +154 -0
  57. data/test/test_bigipcookie.rb +54 -0
  58. metadata +248 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 98987fe496586fce7a2692ffa657b10bab969977ca1ff1cf4db5eac89d13ddc4
4
+ data.tar.gz: a3a8430704ea8b58e39a5fbe5f7b10371030261039e5f2874ce0f3104035d3d2
5
+ SHA512:
6
+ metadata.gz: 5c74ef56c2317560de1f2ebc0432393ee04eacc4a40ed7d2ad02bf47496386950e75b62ecce05fb1e2f635f3c95b795deeebf45cd3d6d094566a13e6199a55be
7
+ data.tar.gz: 62f44f2cfc9b1789dcf2dd82c8c5a9c8db302fb5b5a171f39376ab851b3f115844262799d908254633463b8d0647417f86de7204d6e9dd8dc7d6aaf05e46903c
data/.gitignore ADDED
@@ -0,0 +1,7 @@
1
+ .yardoc
2
+ *.gem
3
+ /pkg
4
+ /doc
5
+ /vendor
6
+ .bundle/
7
+ /node_modules
data/.rubocop.yml ADDED
@@ -0,0 +1,22 @@
1
+ # Metrics
2
+ AllCops:
3
+ TargetRubyVersion: 2.4
4
+
5
+ Layout/AlignHash:
6
+ Include:
7
+ - 'lib/**/*.rb'
8
+ Metrics/AbcSize:
9
+ Enabled: false
10
+ Metrics/ClassLength:
11
+ Max: 200
12
+ Metrics/CyclomaticComplexity:
13
+ Enabled: false
14
+ Metrics/LineLength:
15
+ Include:
16
+ - 'lib/**/*.rb'
17
+ Metrics/MethodLength:
18
+ Max: 25
19
+ Metrics/PerceivedComplexity:
20
+ Max: 10
21
+ Style/RedundantReturn:
22
+ Enabled: false
data/.yardopts ADDED
@@ -0,0 +1,4 @@
1
+ --output-dir docs/yard
2
+ -
3
+ --main README.md
4
+ LICENSE.txt
data/.yardopts-dev ADDED
@@ -0,0 +1,6 @@
1
+ --output-dir docs/yard
2
+ --protected
3
+ --private
4
+ -
5
+ --main README.md
6
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,6 @@
1
+ # frozen_string_literal: true
2
+
3
+ source 'https://rubygems.org'
4
+
5
+ # Specify your gem's dependencies in .gemspec
6
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,56 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rabid (0.0.1)
5
+ docopt (~> 0.6)
6
+ paint (~> 2.1)
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ ast (2.4.0)
12
+ commonmarker (0.20.1)
13
+ ruby-enum (~> 0.5)
14
+ concurrent-ruby (1.1.5)
15
+ docopt (0.6.1)
16
+ github-markup (3.0.4)
17
+ i18n (1.6.0)
18
+ concurrent-ruby (~> 1.0)
19
+ jaro_winkler (1.5.3)
20
+ minitest (5.11.3)
21
+ paint (2.1.0)
22
+ parallel (1.17.0)
23
+ parser (2.6.3.0)
24
+ ast (~> 2.4.0)
25
+ rainbow (3.0.0)
26
+ rake (12.3.2)
27
+ redcarpet (3.4.0)
28
+ rubocop (0.73.0)
29
+ jaro_winkler (~> 1.5.1)
30
+ parallel (~> 1.10)
31
+ parser (>= 2.6)
32
+ rainbow (>= 2.2.2, < 4.0)
33
+ ruby-progressbar (~> 1.7)
34
+ unicode-display_width (>= 1.4.0, < 1.7)
35
+ ruby-enum (0.7.2)
36
+ i18n
37
+ ruby-progressbar (1.10.1)
38
+ unicode-display_width (1.6.0)
39
+ yard (0.9.20)
40
+
41
+ PLATFORMS
42
+ ruby
43
+
44
+ DEPENDENCIES
45
+ bundler (~> 2.0)
46
+ commonmarker (~> 0.18)
47
+ github-markup (~> 3.0)
48
+ minitest (~> 5.11)
49
+ rabid!
50
+ rake (~> 12.3)
51
+ redcarpet (~> 3.4)
52
+ rubocop (~> 0.63)
53
+ yard (~> 0.9)
54
+
55
+ BUNDLED WITH
56
+ 2.0.1
data/LICENSE.txt ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ Copyright (c) 2019 Alexandre ZANNI
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,15 @@
1
+ # RABID
2
+
3
+ ![](https://orange-cyberdefense.github.io/rabid/_media/logo.png)
4
+
5
+ > **RA**pid **B**ig **I**P **D**ecoder
6
+
7
+ ## What it is
8
+
9
+ A CLI tool and library allowing to simply decode all kind of BigIP cookies.
10
+
11
+ ## Features
12
+
13
+ - Support all 4 cookie formats
14
+ - CLI tool & library
15
+ - Hackable
data/Rakefile ADDED
@@ -0,0 +1,10 @@
1
+ require 'rake/testtask'
2
+ require 'bundler/gem_tasks'
3
+
4
+ Rake::TestTask.new do |t|
5
+ t.libs << 'test'
6
+ end
7
+
8
+ desc 'Run tests'
9
+ task default: :test
10
+
@@ -0,0 +1,49 @@
1
+ # frozen_string_literal: true
2
+
3
+ lib = File.expand_path('lib', __dir__)
4
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
+ require 'bigipcookie/version'
6
+
7
+ Gem::Specification.new do |s|
8
+ s.name = 'rabid'
9
+ s.version = Version::VERSION
10
+ s.platform = Gem::Platform::RUBY
11
+ s.date = '2019-07-16'
12
+ s.summary = 'RApid Big IP Decoder'
13
+ s.description = 'A library and CLI tool allowing to decode all 4 types'\
14
+ ' of BigIP cookies'
15
+ s.authors = ['Alexandre ZANNI']
16
+ s.email = 'alexandre.zanni@engineer.com'
17
+ s.homepage = 'https://orange-cyberdefense.github.io/rabid/'
18
+ s.license = 'MIT'
19
+
20
+ s.files = `git ls-files`.split("\n")
21
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f|
22
+ File.basename(f)
23
+ }
24
+ s.test_files = s.files.grep(%r{^(test)/})
25
+ s.require_paths = ['lib']
26
+
27
+ s.metadata = {
28
+ 'yard.run' => 'yard',
29
+ 'bug_tracker_uri' => 'https://github.com/Orange-Cyberdefense/rabid/issues',
30
+ 'changelog_uri' => 'https://github.com/Orange-Cyberdefense/rabid/blob/master/docs/CHANGELOG.md',
31
+ 'documentation_uri' => 'https://orange-cyberdefense.github.io/rabid/',
32
+ 'homepage_uri' => 'https://orange-cyberdefense.github.io/rabid/',
33
+ 'source_code_uri' => 'https://github.com/Orange-Cyberdefense/rabid/',
34
+ }
35
+
36
+ s.required_ruby_version = '~> 2.4'
37
+
38
+ s.add_runtime_dependency('docopt', '~> 0.6') # for argument parsing
39
+ s.add_runtime_dependency('paint', '~> 2.1') # for colorized ouput
40
+
41
+ s.add_development_dependency('bundler', '~> 2.0')
42
+ s.add_development_dependency('commonmarker', '~> 0.18') # for GMF support in YARD
43
+ s.add_development_dependency('github-markup', '~> 3.0') # for GMF support in YARD
44
+ s.add_development_dependency('minitest', '~> 5.11')
45
+ s.add_development_dependency('rake', '~> 12.3')
46
+ s.add_development_dependency('redcarpet', '~> 3.4') # for GMF support in YARD
47
+ s.add_development_dependency('rubocop', '~> 0.63')
48
+ s.add_development_dependency('yard', '~> 0.9')
49
+ end
data/bin/rabid ADDED
@@ -0,0 +1,67 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ # Ruby internal
5
+ require 'pp'
6
+ # Project internal
7
+ require 'bigipcookie'
8
+ # External
9
+ require 'docopt'
10
+ require 'paint'
11
+
12
+ doc = <<~DOCOPT
13
+ RABID (RApid Big IP Decoder)
14
+
15
+ Usage:
16
+ rabid [options] <raw_cookie>
17
+ rabid -h | --help
18
+ rabid --version
19
+
20
+ Options:
21
+ --ipv6-long-format Display IPv6 address in long format
22
+ --no-color Disable colorized output
23
+ --short Display in a short format: display only decoded cookies
24
+ --debug Display arguments
25
+ -h, --help Show this screen
26
+ --version Show version
27
+
28
+ Examples:
29
+ rabid 'BIGipServer<pool_name>=1677787402.36895.0000' --no-color --short
30
+ rabid 'rd5o00000000000000000000ffffc0000201o80'
31
+ rabid 'CustomeCookieName=vi20010112000000000000000000000030.20480' --ipv6-long-format
32
+ rabid 'BIGipServer~SuperPool=rd3o20010112000000000000000000000030o80' --debug
33
+ DOCOPT
34
+
35
+ begin
36
+ args = Docopt.docopt(doc, version: BigIPCookie::VERSION)
37
+ pp args if args['--debug']
38
+ # use case 1, using the tool
39
+ if args['<raw_cookie>']
40
+ bip = BigIPCookie::Decode.new(args['<raw_cookie>'])
41
+ opts = {}
42
+ opts[:ipv6compression] = 0 if args['--ipv6-long-format']
43
+ bip.auto_decode(opts)
44
+ # Display
45
+ if args['--no-color']
46
+ if args['--short']
47
+ puts bip.decoded_cookie
48
+ else
49
+ puts "Pool name: #{bip.pool_name}"
50
+ puts "Cookie type: #{bip.cookie_type}"
51
+ puts "Raw cookie: #{bip.raw_cookie}"
52
+ puts "Decoded cookie: #{bip.decoded_cookie}"
53
+ end
54
+ elsif args['--short']
55
+ puts Paint[bip.decoded_cookie, :green]
56
+ else
57
+ puts Paint['Pool name:', :white, :bold] + ' ' + bip.pool_name
58
+ puts Paint['Cookie type:', :white, :bold] + ' ' + bip.cookie_type
59
+ puts Paint['Raw cookie:', :white, :bold] + ' ' + bip.raw_cookie
60
+ puts Paint['Decoded cookie:', :white, :bold] + ' ' + Paint[bip.decoded_cookie, :green]
61
+ end
62
+ end
63
+ # use case 2, help: already handled by docopt
64
+ # use case 3, version: already handled by docopt
65
+ rescue Docopt::Exit => e
66
+ puts e.message
67
+ end
data/bin/rabid_console ADDED
@@ -0,0 +1,7 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ require 'bigipcookie'
5
+ require 'irb'
6
+
7
+ IRB.start(__FILE__)
data/bin/rabid_setup ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
data/docs/.nojekyll ADDED
File without changes
data/docs/About.md ADDED
@@ -0,0 +1,11 @@
1
+ # About
2
+
3
+ # References
4
+
5
+ BigIP cookie decoding is done following the official methode provided by F5: https://support.f5.com/csp/article/K6917
6
+
7
+ IPv6 URL format try to respect RFC2732: https://tools.ietf.org/html/rfc2732
8
+
9
+ ## Logo
10
+
11
+ Logo made with [DesignEvo](https://www.designevo.com).
data/docs/CHANGELOG.md ADDED
@@ -0,0 +1 @@
1
+ # Changelog
data/docs/README.md ADDED
@@ -0,0 +1,13 @@
1
+ # RABID
2
+
3
+ > **RA**pid **B**ig **I**P **D**ecoder
4
+
5
+ ## What it is
6
+
7
+ A CLI tool and library allowing to simply decode all kind of BigIP cookies.
8
+
9
+ ## Features
10
+
11
+ - Support all 4 cookie formats
12
+ - CLI tool & library
13
+ - Hackable
@@ -0,0 +1,14 @@
1
+ ![](_media/logo.png)
2
+
3
+ # RABID
4
+
5
+ > **RA**pid **B**ig **I**P **D**ecoder
6
+
7
+ - Support all 4 cookie formats
8
+ - CLI tool & library
9
+ - Hackable
10
+
11
+ [GitHub]()
12
+ [Get Started](pages/quick-start?id=quick-start)
13
+
14
+ ![color](#ffffff)
Binary file
data/docs/_navbar.md ADDED
@@ -0,0 +1,2 @@
1
+ - [Home](/)
2
+ - [Source](https://github.com/Orange-Cyberdefense/rabid/)
data/docs/_sidebar.md ADDED
@@ -0,0 +1,15 @@
1
+ - Getting started
2
+
3
+ - [Quick start](pages/quick-start.md)
4
+ - [Installation](pages/install.md)
5
+ - [Usage](pages/usage.md)
6
+ - [Demo](pages/demo.md)
7
+
8
+ - Guide
9
+
10
+ - [Documentation](pages/documentation.md)
11
+ - [Publishing](pages/publishing.md)
12
+
13
+ - [Why?](why.md)
14
+ - [About](About.md)
15
+ - [Changelog](CHANGELOG.md)
data/docs/index.html ADDED
@@ -0,0 +1,31 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <title>Document</title>
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
7
+ <meta name="description" content="Description">
8
+ <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
9
+ <link rel="stylesheet" href="vendor/themes/vue.css">
10
+ </head>
11
+ <body>
12
+ <div id="app"></div>
13
+ <script>
14
+ window.$docsify = {
15
+ name: 'RABID',
16
+ repo: 'https://github.com/Orange-Cyberdefense/rabid/',
17
+ loadSidebar: true,
18
+ subMaxLevel: 2,
19
+ loadNavbar: true,
20
+ coverpage: true,
21
+ logo: '_media/logo.png',
22
+ themeColor: '#FF6600',
23
+ search: 'auto',
24
+ }
25
+ </script>
26
+ <script src="vendor/docsify.js"></script>
27
+ <script src="vendor/plugins/search.min.js"></script>
28
+ <script src="vendor/plugins/emoji.min.js"></script>
29
+ <script src="vendor/prismjs/components/prism-ruby.min.js"></script>
30
+ </body>
31
+ </html>
@@ -0,0 +1,3 @@
1
+ # Demonstration
2
+
3
+ Asciinema
@@ -0,0 +1,34 @@
1
+ # Documentation
2
+
3
+ ## CLI doc
4
+
5
+ See [Usage](pages/usage.md?id=cli).
6
+
7
+ ## Server locally
8
+
9
+ ```
10
+ $ npm i docsify-cli -g
11
+ $ docsify serve docs
12
+ ```
13
+
14
+ ## Library doc
15
+
16
+ The output directory of the library documentation will be `docs/yard`.
17
+
18
+ You can consult it online [here](rabid/yard/).
19
+
20
+ ### Building locally: for library users
21
+
22
+ For developers who only want to use the RABID library.
23
+
24
+ ```
25
+ $ bundle exec yard doc
26
+ ```
27
+
28
+ ### Building locally: for RABID developer
29
+
30
+ For developers who want to participate to RABID development.
31
+
32
+ ```
33
+ $ bundle exec yard doc --yardopts .yardopts-dev
34
+ ```
@@ -0,0 +1,60 @@
1
+ # Installation
2
+
3
+ ## Production
4
+
5
+ ### Install from rubygems.org
6
+
7
+ ```
8
+ $ gem install rabid
9
+ ```
10
+
11
+ ### Install from BlackArch
12
+
13
+ ```
14
+ # pacman -S rabid
15
+ ```
16
+
17
+ ## Development
18
+
19
+ It's better to use [rbenv](https://github.com/rbenv/rbenv) to have latests version of ruby and to avoid trashing your system ruby.
20
+
21
+ ### Install from rubygems.org
22
+
23
+ ```
24
+ $ gem install --development rabid
25
+ ```
26
+
27
+ ### Build from git
28
+
29
+ Just replace `x.x.x` with the gem version you see after `gem build`.
30
+
31
+ ```
32
+ $ git clone https://XXX/XXX/rabid.git rabid
33
+ $ cd rabid
34
+ $ gem install bundler
35
+ $ bundler install
36
+ $ gem build rabid.gemspec
37
+ $ gem install rabid-x.x.x.gem
38
+ ```
39
+
40
+ Note: if an automatic install is needed you can get the version with `$ gem build bigipcookie.gemspec | grep Version | cut -d' ' -f4`.
41
+
42
+ ### Run the library in irb without installing the gem
43
+
44
+ From local file:
45
+
46
+ ```
47
+ $ irb -Ilib -rbigipcookie
48
+ ```
49
+
50
+ From the installed gem:
51
+
52
+ ```
53
+ $ rabid_console
54
+ ```
55
+
56
+ Same for the CLI tool:
57
+
58
+ ```
59
+ $ ruby -Ilib -rbigipcookie bin/rabid
60
+ ```
@@ -0,0 +1,38 @@
1
+ # Publishing
2
+
3
+ ## On Rubygems.org
4
+
5
+ ```
6
+ $ git tag vx.x.x
7
+ $ gem push rabid-x.x.x.gem
8
+ ```
9
+
10
+ See https://guides.rubygems.org/publishing/.
11
+
12
+ On new release don't forget to rebuild the library documentation:
13
+
14
+ ```
15
+ $ bundle exec yard doc
16
+ ```
17
+
18
+ An to be sure all tests pass!
19
+
20
+ ```
21
+ $ rake
22
+ ```
23
+
24
+ ## On BlackArch
25
+
26
+ BA process
27
+
28
+ On new release don't forget to rebuild the library documentation:
29
+
30
+ ```
31
+ $ bundle exec yard doc
32
+ ```
33
+
34
+ An to be sure all tests pass!
35
+
36
+ ```
37
+ $ rake
38
+ ```
@@ -0,0 +1,30 @@
1
+ # Quick start
2
+
3
+ ## Quick install
4
+
5
+ ```
6
+ $ gem install rabid
7
+ ```
8
+
9
+ ## Default usage: CLI
10
+
11
+ ```
12
+ $ rabid 'BIGipServer<pool_name>=1677787402.36895.0000'
13
+ Pool name: <pool_name>
14
+ Cookie type: IPv4 pool members
15
+ Raw cookie: BIGipServer<pool_name>=1677787402.36895.0000
16
+ Decoded cookie: 10.1.1.100:8080
17
+ ```
18
+
19
+ ## Default usage: library
20
+
21
+ ```ruby
22
+ require 'bigipcookie'
23
+
24
+ # IPv4 pool members, with pool name
25
+ bip = BigIPCookie::Decode.new('BIGipServer<pool_name>=1677787402.36895.0000')
26
+ # Automatically decode
27
+ bip.auto_decode
28
+ # Print result
29
+ puts "Cookie: #{bip.decoded_cookie}"
30
+ ```
@@ -0,0 +1,53 @@
1
+ # Usage
2
+
3
+ ## CLI
4
+
5
+ ```
6
+ $ rabid --help
7
+ RABID (RApid Big IP Decoder)
8
+
9
+ Usage:
10
+ rabid [options] <raw_cookie>
11
+ rabid -h | --help
12
+ rabid --version
13
+
14
+ Options:
15
+ --ipv6-long-format Display IPv6 address in long format
16
+ --no-color Disable colorized output
17
+ --short Display in a short format: display only decoded cookies
18
+ --debug Display arguments
19
+ -h, --help Show this screen
20
+ --version Show version
21
+
22
+ Examples:
23
+ rabid 'BIGipServer<pool_name>=1677787402.36895.0000' --no-color --short
24
+ rabid 'rd5o00000000000000000000ffffc0000201o80'
25
+ rabid 'CustomeCookieName=vi20010112000000000000000000000030.20480' --ipv6-long-format
26
+ rabid 'BIGipServer~SuperPool=rd3o20010112000000000000000000000030o80' --debug
27
+ ```
28
+
29
+ ## Library
30
+
31
+ ```ruby
32
+ require 'bigipcookie'
33
+
34
+ # IPv4 pool members, with pool name
35
+ bip = BigIPCookie::Decode.new('BIGipServer<pool_name>=1677787402.36895.0000')
36
+ # Automatically decode
37
+ bip.auto_decode
38
+ # Access the decoded value
39
+ bip.decoded_cookie
40
+ # Access the pool name
41
+ bip.pool_name
42
+ # Access the cookie type
43
+ bip.cookie_type
44
+ ```
45
+
46
+ ## Console
47
+
48
+ Launch `irb` with the library loaded.
49
+
50
+ ```
51
+ $ rabid_console
52
+ irb(main):001:0>
53
+ ```