rabid 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
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
+ ```