arnaucube
arnaucube/bcPublic Self-hosted repository
bc/peer/p2plib/utils.go
peer/p2plib/utils.goRaw
 1package p2plib
 2
 3import (
 4	"crypto/sha256"
 5	"encoding/base64"
 6	"math/rand"
 7	"net"
 8	"strings"
 9)
10
11func GetIPPortFromConn(conn net.Conn) string {
12	ip := GetIPFromConn(conn)
13	port := GetPortFromConn(conn)
14	return ip + ":" + port
15}
16func GetIPFromConn(conn net.Conn) string {
17	s := conn.RemoteAddr().String()
18	s = strings.Split(s, ":")[0]
19	s = strings.Trim(s, ":")
20	return s
21}
22func GetPortFromConn(conn net.Conn) string {
23	s := conn.RemoteAddr().String()
24	s = strings.Split(s, ":")[1]
25	s = strings.Trim(s, ":")
26	return s
27}
28func RandInt(min int, max int) int {
29	r := rand.Intn(max-min) + min
30	return r
31}
32func HashPeer(p Peer) string {
33	peerString := p.IP + ":" + p.Port
34
35	h := sha256.New()
36	h.Write([]byte(peerString))
37	return base64.URLEncoding.EncodeToString(h.Sum(nil))
38}