| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- // Copyright 2018-present the CoreDHCP Authors. All rights reserved
- // This source code is licensed under the MIT license found in the
- // LICENSE file in the root directory of this source tree.
- package main
- /*
- * Sample DHCPv6 client to test on the local interface
- */
- import (
- "flag"
- "net"
- "github.com/coredhcp/coredhcp/logger"
- "github.com/insomniacslk/dhcp/dhcpv6"
- "github.com/insomniacslk/dhcp/dhcpv6/client6"
- "github.com/insomniacslk/dhcp/iana"
- )
- var log = logger.GetLogger("main")
- func main() {
- flag.Parse()
- var macString string
- if len(flag.Args()) > 0 {
- macString = flag.Arg(0)
- } else {
- macString = "00:11:22:33:44:55"
- }
- c := client6.NewClient()
- c.LocalAddr = &net.UDPAddr{
- IP: net.ParseIP("::1"),
- Port: 546,
- }
- c.RemoteAddr = &net.UDPAddr{
- IP: net.ParseIP("::1"),
- Port: 547,
- }
- log.Printf("%+v", c)
- mac, err := net.ParseMAC(macString)
- if err != nil {
- log.Fatal(err)
- }
- duid := dhcpv6.Duid{
- Type: dhcpv6.DUID_LLT,
- HwType: iana.HWTypeEthernet,
- Time: dhcpv6.GetTime(),
- LinkLayerAddr: mac,
- }
- conv, err := c.Exchange("lo", dhcpv6.WithClientID(duid))
- for _, p := range conv {
- log.Print(p.Summary())
- }
- if err != nil {
- log.Fatal(err)
- }
- }
|