zhangzengfei
2023-09-12 9314ec141b15996dc0e6a71785efbf491eec8493
system-service/sys/system.go
@@ -11,6 +11,7 @@
   "strconv"
   "vamicro/config"
   "vamicro/extend/util"
   "vamicro/system-service/iwlist"
   "vamicro/system-service/models"
   sysVo "vamicro/system-service/vo"
@@ -213,7 +214,8 @@
   return false
}
/**
/*
*
更新配置
@param serverName 服务名称
@param newIp 服务Ip
@@ -665,75 +667,73 @@
}
//获取wifi网络
func GetWifi(netcard string) ([]sysVo.WiFi, error) {
   reg, err := regexp.Compile(`Quality=(\d+)/70[^\n]+\n\s+Encryption key:([^\n]+)\n\s+ESSID:\"([^\"]+)\"`)
   if nil == err {
      var wifiList = make([]sysVo.WiFi, 0)
      info, err := execRootCommand(fmt.Sprintf("iwlist %s scan", netcard))
      if nil == err {
         res := reg.FindAllStringSubmatch(string(info), -1)
         for _, item := range res {
            if len(item) >= 4 {
               wifi := sysVo.WiFi{item[3], item[1], item[2]}
               wifiList = append(wifiList, wifi)
            }
         }
         return wifiList, nil
      }
   }
   return nil, err
func ScanWifiList(netcard string) ([]iwlist.Cell, error) {
   return iwlist.Scan(netcard)
}
//连接WIFI
func ConnectWifi(fname, passwd, ssid string) error {
   content, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s add_network", fname))
   if nil != err {
func ConnectWifi(fname, ssid, passwd string) error {
   networkConfigScript := "/opt/vasystem/script/wlanconfig"
   // 检查文件是否存在
   if _, err := os.Stat(networkConfigScript); err != nil {
      return err
   }
   newid := strings.TrimSpace(string(content))
   reg, err := regexp.Compile(`^(\d+)$`)
   if nil == err {
      b := reg.MatchString(newid)
      if !b {
         return errors.New("WIFI加入失败")
      }
      ret, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s ssid '\"%s\"'", fname, newid, ssid))
      if nil != err {
   // # wlanconfig wlan0 Basic Basic2019
   cmdStr := fmt.Sprintf("%s %s %s %s", networkConfigScript, fname, ssid, passwd)
   _, err := execRootCommand(cmdStr)
         return err
      }
      if strings.TrimSpace(string(ret)) != "OK" {
         return errors.New(string(ret))
      }
      ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s psk '\"%s\"'", fname, newid, passwd))
      if nil != err {
         return err
      }
      if strings.TrimSpace(string(ret)) != "OK" {
         return errors.New(string(ret))
      }
      ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s disconnect", fname))
      if nil != err {
         return err
      }
      if strings.TrimSpace(string(ret)) != "OK" {
         return errors.New(string(ret))
      }
      ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s select_network %s", fname, newid))
      if nil != err {
         return err
      }
      if strings.TrimSpace(string(ret)) != "OK" {
         return errors.New(string(ret))
      }
      _, err = execRootCommand(fmt.Sprintf("udhcpc -i %s -q -n", fname))
      if nil != err {
         return errors.New("密码好像不对哦")
      }
      _, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s save_config", fname))
      return nil
   } else {
      return err
   }
   //content, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s add_network", fname))
   //if nil != err {
   //   return err
   //}
   //newid := strings.TrimSpace(string(content))
   //reg, err := regexp.Compile(`^(\d+)$`)
   //if nil == err {
   //   b := reg.MatchString(newid)
   //   if !b {
   //      return errors.New("WIFI加入失败")
   //   }
   //   ret, err := execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s ssid '\"%s\"'", fname, newid, ssid))
   //   if nil != err {
   //      return err
   //   }
   //   if strings.TrimSpace(string(ret)) != "OK" {
   //      return errors.New(string(ret))
   //   }
   //   ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s set_network %s psk '\"%s\"'", fname, newid, passwd))
   //   if nil != err {
   //      return err
   //   }
   //   if strings.TrimSpace(string(ret)) != "OK" {
   //      return errors.New(string(ret))
   //   }
   //   ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s disconnect", fname))
   //   if nil != err {
   //      return err
   //   }
   //   if strings.TrimSpace(string(ret)) != "OK" {
   //      return errors.New(string(ret))
   //   }
   //   ret, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s select_network %s", fname, newid))
   //   if nil != err {
   //      return err
   //   }
   //   if strings.TrimSpace(string(ret)) != "OK" {
   //      return errors.New(string(ret))
   //   }
   //   _, err = execRootCommand(fmt.Sprintf("udhcpc -i %s -q -n", fname))
   //   if nil != err {
   //      return errors.New("密码好像不对哦")
   //   }
   //   _, err = execRootCommand(fmt.Sprintf("wpa_cli -i %s save_config", fname))
   //   return nil
   //} else {
   //   return err
   //}
}
func ExistService(name string) string {