mirror of
https://github.com/tim-beatham/smegmesh.git
synced 2024-12-12 17:41:08 +01:00
50 lines
834 B
Go
50 lines
834 B
Go
|
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())
|
||
|
}
|
||
|
}
|