1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- package comm
- import (
- "fmt"
- "log"
- "net"
- "os"
- "path/filepath"
- "strings"
- "time"
- )
- func GetFreePort() (int, error) {
- addr, err := net.ResolveTCPAddr("tcp", "localhost:0")
- if err != nil {
- return 0, err
- }
- l, err := net.ListenTCP("tcp", addr)
- if err != nil {
- return 0, err
- }
- defer l.Close()
- return l.Addr().(*net.TCPAddr).Port, nil
- }
- func GetLocalIpByName(adapterName string) net.IP {
- ifaces, err := net.Interfaces()
- // handle err
- if err != nil {
- log.Println("No network:", err)
- return nil
- }
- for _, i := range ifaces {
- if strings.Contains(i.Name, adapterName) {
- addrs, err := i.Addrs()
- if err != nil {
- log.Println("No IP:", err)
- return nil
- }
- for _, addr := range addrs {
- var ip net.IP
- switch v := addr.(type) {
- case *net.IPNet:
- log.Println("IPNET")
- ip = v.IP
- case *net.IPAddr:
- log.Println("IPAddr")
- ip = v.IP
- }
- if ip[0] == 0 {
- log.Println("Get device:", i.Name)
- return ip
- }
- }
- }
- }
- return nil
- }
- func IsExist(path string) bool {
- _, err := os.Stat(path)
- if err != nil {
- if os.IsExist(err) {
- return true
- }
- if os.IsNotExist(err) {
- return false
- }
- fmt.Println(err)
- return false
- }
- return true
- }
- func CreateSessionId() string {
- t := time.Now()
- date := t.Format("20060102150405")
- return fmt.Sprintf("s%s-%d", date, t.Nanosecond())
- }
- func GetCurrentDir() string {
- dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
- if err != nil {
- return ""
- }
- return strings.Replace(dir, "\\", "/", -1)
- }
|