mirror of
https://github.com/sigcn/pg.git
synced 2025-09-27 01:05:51 +08:00
31 lines
611 B
Go
31 lines
611 B
Go
package netlink
|
|
|
|
import (
|
|
"errors"
|
|
"net"
|
|
"os/exec"
|
|
)
|
|
|
|
func SetupLink(ifName, cidr string) error {
|
|
ip, ipnet, err := net.ParseCIDR(cidr)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
if ip.To4() == nil { // ipv6
|
|
info.IPv6 = ip.String()
|
|
if err := exec.Command("ifconfig", ifName, "inet6", "add", cidr).Run(); err != nil {
|
|
return err
|
|
}
|
|
} else {
|
|
info.IPv4 = ip.String()
|
|
if err := exec.Command("ifconfig", ifName, "inet", cidr, ip.String(), "up").Run(); err != nil {
|
|
return err
|
|
}
|
|
}
|
|
return AddRoute(ifName, ipnet, nil)
|
|
}
|
|
|
|
func LinkByIndex(index int) (*Link, error) {
|
|
return nil, errors.ErrUnsupported
|
|
}
|