74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
|
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()
|
|||
|
}
|