|
|
1 month ago | |
|---|---|---|
| cmd | 1 month ago | |
| internal | 1 month ago | |
| pkg | 1 month ago | |
| web | 1 month ago | |
| .gitignore | 1 month ago | |
| PROJECT_SUMMARY.md | 1 month ago | |
| README.md | 1 month ago | |
| SSH_COMPATIBILITY.md | 1 month ago | |
| USAGE_WINDOWS.md | 1 month ago | |
| build.bat | 1 month ago | |
| config.example.json | 1 month ago | |
| devices.json | 1 month ago | |
| go.mod | 1 month ago | |
| go.sum | 1 month ago | |
| start.bat | 1 month ago | |
| test-api.bat | 1 month ago |
基于Go语言开发的Windows网络拓扑发现工具,通过SSH协议远程获取多厂商网络设备接口信息,自动生成可视化网络拓扑图。
运行编译脚本:
build.bat
启动程序:
network-topology.exe
打开浏览器访问: http://localhost:8080
# 克隆项目
git clone <repository-url>
cd network-topology-discovery
# 下载依赖
go mod download
# 编译
go build -o network-topology.exe ./cmd
# 运行
network-topology.exe
配置文件 config.json:
{
"scan_ranges": ["192.168.1.0/24"], // 要扫描的网段
"devices": [ // 预配置的设备
{
"ip": "192.168.1.1",
"type": "cisco", // 设备类型
"username": "admin",
"password": "your_password",
"port": 22
}
],
"ssh": {
"timeout": 10, // SSH超时时间(秒)
"max_retries": 3, // 最大重试次数
"port": 22 // SSH端口
},
"web": {
"port": 8080, // Web服务端口
"host": "0.0.0.0" // 监听地址
},
"scanner": {
"concurrency": 10, // 并发扫描数
"timeout": 2 // 扫描超时(秒)
}
}
show version - 版本信息show interface - 接口详情show ip interface brief - 接口摘要show cdp neighbors detail - CDP邻居show lldp neighbors detail - LLDP邻居display version - 版本信息display interface - 接口详情display ip interface brief - 接口摘要display lldp neighbor - LLDP邻居display version - 版本信息display interface - 接口详情display ip interface brief - 接口摘要display lldp neighbor-list - LLDP邻居show version - 版本信息show interface - 接口详情show ip - IP信息show inventory - 设备清单hostname - 主机名uname -a - 系统信息ip addr show - 网络接口ip link show - 链路状态uptime - 运行时间hostname - 主机名systeminfo - 系统信息Get-NetAdapter - 网络适配器Get-NetIPAddress - IP地址network-topology-discovery/
├── cmd/
│ └── main.go # 主程序入口
├── internal/
│ ├── ssh/
│ │ └── client.go # SSH客户端
│ ├── device/
│ │ ├── parser.go # 解析器基类
│ │ ├── cisco.go # Cisco解析器
│ │ ├── huawei.go # 华为解析器
│ │ ├── h3c.go # H3C解析器
│ │ ├── asa.go # ASA解析器
│ │ ├── linux.go # Linux解析器
│ │ └── windows.go # Windows解析器
│ ├── topology/
│ │ └── builder.go # 拓扑构建器
│ ├── scanner/
│ │ └── scanner.go # 网络扫描器
│ └── config/
│ └── config.go # 配置管理
├── web/
│ ├── index.html # Web界面
│ ├── css/style.css # 样式文件
│ └── js/app.js # 应用逻辑
├── pkg/
│ └── models/
│ └── models.go # 数据模型
├── build.bat # 编译脚本
├── config.example.json # 配置示例
└── README.md
golang.org/x/crypto/ssh - SSH客户端embed - 嵌入Web资源net/http - HTTP服务器MIT License
欢迎提交Issue和Pull Request!
如有问题或建议,请提交Issue。