smegmesh/wgmesh.go

50 lines
834 B
Go
Raw Normal View History

2023-09-16 14:57:27 +02:00
package main
import (
"fmt"
"golang.zx2c4.com/wireguard/wgctrl"
"golang.zx2c4.com/wireguard/wgctrl/wgtypes"
)
func main() {
client, err := wgctrl.New()
if err != nil {
return
}
privateKey, err := wgtypes.GeneratePrivateKey()
var listenPort int = 5109
if err != nil {
return
}
cfg := wgtypes.Config{
PrivateKey: &privateKey,
ListenPort: &listenPort,
}
err = client.ConfigureDevice("utun9", cfg)
if err != nil {
return
}
devices, err := client.Devices()
if err != nil {
return
}
fmt.Printf("Number of devices: %d\n", len(devices))
for _, device := range devices {
fmt.Printf("Device Name: %s\n", device.Name)
fmt.Printf("Listen Port: %d\n", device.ListenPort)
fmt.Printf("Private Key: %s\n", device.PrivateKey.String())
fmt.Printf("Public Key: %s\n", device.PublicKey.String())
}
}