Advertisement
Guest User

Untitled

a guest
Sep 19th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.52 KB | None | 0 0
  1. package main
  2.  
  3. import (
  4. "fmt"
  5. "encoding/json"
  6. "os"
  7. "bufio"
  8. )
  9.  
  10. // ip -j -p link
  11. // [ {
  12. // "ifindex": 1,
  13. // "ifname": "lo",
  14. // "flags": [ "LOOPBACK","UP","LOWER_UP" ],
  15. // "mtu": 65536,
  16. // "qdisc": "noqueue",
  17. // "operstate": "UNKNOWN",
  18. // "linkmode": "DEFAULT",
  19. // "group": "default",
  20. // "txqlen": 1000,
  21. // "link_type": "loopback",
  22. // "address": "00:00:00:00:00:00",
  23. // "broadcast": "00:00:00:00:00:00"
  24. // },{
  25. // "ifindex": 2,
  26. // "ifname": "enp0s31f6",
  27. // "flags": [ "NO-CARRIER","BROADCAST","MULTICAST","UP" ],
  28. // "mtu": 1500,
  29. // "qdisc": "fq_codel",
  30. // "operstate": "DOWN",
  31. // "linkmode": "DEFAULT",
  32. // "group": "default",
  33. // "txqlen": 1000,
  34. // "link_type": "ether",
  35. // "address": "8c:16:45:32:c7:b2",
  36. // "broadcast": "ff:ff:ff:ff:ff:ff"
  37. // } ]
  38.  
  39. type intf struct {
  40. IfIndex int `json:"ifindex"`
  41. IfName string `json:"ifname"`
  42. Flags []string `json:"flags"`
  43. Mtu int `json:"mtu"`
  44. Qdisc string `json:"qdisc"`
  45. OperState string `json:"operstate"`
  46. LinkMode string `json:"linkmode"`
  47. Group string `json:"group"`
  48. TxqLen int `json:"txqlen"`
  49. LinkType string `json:"link_type"`
  50. Addr string `json:"address"`
  51. Broadcast string `json:"broadcast"`
  52. }
  53.  
  54. func main() {
  55. v := []intf{}
  56.  
  57. stdin := bufio.NewReader(os.Stdin)
  58. json.NewDecoder(stdin).Decode(&v)
  59.  
  60. for _, v := range v {
  61. fmt.Printf("id: %4d, name: %12s, state: %8s, mac: %s\n",
  62. v.IfIndex, v.IfName, v.OperState, v.Addr)
  63. }
  64.  
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement