You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

38 lines
767 B

package p2plib
import (
"crypto/sha256"
"encoding/base64"
"math/rand"
"net"
"strings"
)
func GetIPPortFromConn(conn net.Conn) string {
ip := GetIPFromConn(conn)
port := GetPortFromConn(conn)
return ip + ":" + port
}
func GetIPFromConn(conn net.Conn) string {
s := conn.RemoteAddr().String()
s = strings.Split(s, ":")[0]
s = strings.Trim(s, ":")
return s
}
func GetPortFromConn(conn net.Conn) string {
s := conn.RemoteAddr().String()
s = strings.Split(s, ":")[1]
s = strings.Trim(s, ":")
return s
}
func RandInt(min int, max int) int {
r := rand.Intn(max-min) + min
return r
}
func HashPeer(p Peer) string {
peerString := p.IP + ":" + p.Port
h := sha256.New()
h.Write([]byte(peerString))
return base64.URLEncoding.EncodeToString(h.Sum(nil))
}