Method: Bitcoin::Message::NetworkAddr#addr_string
- Defined in:
- lib/bitcoin/message/network_addr.rb
#addr_string ⇒ Object
Show addr string. e.g 127.0.0.1
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/bitcoin/message/network_addr.rb', line 69 def addr_string case net when NETWORK_ID[:ipv4] addr.native when NETWORK_ID[:ipv6] if addr.to_s.start_with?(INTERNAL_IN_IPV6_PREFIX) Base32.encode(addr.hton[6..-1]).downcase.delete('=') + ".internal" else addr.to_s end when NETWORK_ID[:tor_v2] Base32.encode(addr.htb).downcase + ".onion" when NETWORK_ID[:tor_v3] # TORv3 onion_address = base32(PUBKEY | CHECKSUM | VERSION) + ".onion" pubkey = addr.htb checksum = OpenSSL::Digest.new('SHA3-256').digest('.onion checksum' + pubkey + "\x03") Base32.encode(pubkey + checksum[0...2] + "\x03").downcase + ".onion" when NETWORK_ID[:i2p] Base32.encode(addr.htb).downcase.delete('=') + ".b32.i2p" when NETWORK_ID[:cjdns] addr.to_s end end |