| | |
| | | "strconv" |
| | | "vamicro/config" |
| | | "vamicro/extend/util" |
| | | "vamicro/system-service/iwlist" |
| | | "vamicro/system-service/models" |
| | | sysVo "vamicro/system-service/vo" |
| | | |
| | |
| | | return false |
| | | } |
| | | |
| | | /** |
| | | /* |
| | | * |
| | | 更新配置 |
| | | @param serverName 服务名称 |
| | | @param newIp 服务Ip |
| | |
| | | } |
| | | |
| | | //获取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 { |