2025-02-05 11:09:29 +08:00

74 lines
1.5 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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()
}