Go语言实现主机列表管理与端口扫描功能
在开发网络工具时,主机列表管理和端口扫描是常见的需求。本文将详细介绍如何使用Go语言实现主机列表的管理功能,包括添加、删除、保存和加载主机列表,以及如何为这些功能编写测试用例。最后,还会介绍如何创建管理主机列表的子命令。
1. 创建扫描包
在应用程序的根目录下,创建一个名为 scan
的新目录,并切换到该目录:
$ cd $HOME/pragprog.com/rggo/cobra/pScan
$ mkdir scan
$ cd scan
创建并编辑 hostsList.go
文件,定义包名和导入所需的包:
// Package scan provides types and functions to perform TCP port
// scans on a list of hosts
package scan
import (
"bufio"
"errors"
"fmt"
"io/ioutil"
"os"
"sort"
)
定义两个错误变量,分别表示主机已存在和主机不存在:
var (
ErrExists = errors.New( "Host already in the list" )
ErrNotExists = errors.N