package main import ( "bytes" "fmt" "log" "os" "time" "github.com/jlaffaye/ftp" ) /* 联通友华通信路由器PT952G获取root密码 时间::2025年02月03日 星期五 22时41分09秒 */ func main() { ftp_server_addr := "192.168.1.1" if !test_port(ftp_server_addr, 21, 2*time.Second) { fmt.Printf("目标 %s:%d 无法访问\n", ftp_server_addr, 21) return } // 这里可以继续连接 FTP fmt.Println("目标 IP 可达,继续连接 FTP...") // 使用禁用 UTF-8 的选项连接到 FTP 服务器 conn, err := ftp.Dial(ftp_server_addr+":21", ftp.DialWithDisabledUTF8(true)) if err != nil { log.Fatalf("无法连接到 FTP 服务器: %v", err) } defer conn.Quit() // 登录 FTP 服务器 err = conn.Login("e8ftp", "e8ftp") if err != nil { log.Fatalf("登录失败: %v", err) } // 切换到目标目录 err = conn.ChangeDir("/var/config/") if err != nil { log.Fatalf("切换目录失败: %v", err) } // 下载文件 resp, err := conn.Retr("lastgood.xml") if err != nil { log.Fatalf("无法下载文件: %v", err) } defer resp.Close() // 将文件内容读入内存 buf := new(bytes.Buffer) _, err = buf.ReadFrom(resp) if err != nil { log.Fatalf("读取文件失败: %v", err) } // 保存到本地文件 localFileName := "lastgood.xml" err = os.WriteFile(localFileName, buf.Bytes(), 0644) if err != nil { log.Fatalf("保存本地文件失败: %v", err) } fmt.Printf("文件下载完成并保存为 %s\n", localFileName) _search() }