go - 如何使用“golang.org/x/net/icmp”获取 icmp(ping) 目标 IP 地址
问题描述
我有一个 icmp 监听函数:
func Start(url string) {
conn, err := icmp.ListenPacket("ip4:icmp", url)
if err != nil {
log.Fatal(err)
}
for {
var msg []byte
length, sourceIP, err := conn.ReadFrom(msg)
if err != nil {
log.Println(err)
continue
}
fmt.Println(url + "===========")
log.Printf("message = '%s', length = %d, source-ip = %s", string(msg), length, sourceIP)
}
_ = conn.Close()
}
因为我的服务器主机中有两个网卡,所以我用“ Start(0.0.0.0) ”启动这个函数,
在 ping 到此服务器时,得到以下信息:
2020/08/31 11:11:02 message = '', length = 0, source-ip = 192.168.255.133
192.168.255.128===========
2020/08/31 11:11:03 message = '', length = 0, source-ip = 192.168.255.133
192.168.255.128===========
2020/08/31 11:11:04 message = '', length = 0, source-ip = 192.168.255.133
仅源 IP 地址,如何获取 ping 目标 IP 地址?
解决方案
推荐阅读
- sharepoint - 计算的份额点
- c# - 恢复与数据库的连接
- php - Laravel 控制器无法获取 cookie
- python - 如何使用数据集管道在张量流中推断单个示例
- java - Spring - 通用接口的自动装配通用实现
- vue.js - NativeScript Vue上复选框的参数
- node.js - 如何使用 post 方法在 Nodejs 中调用 API?
- django - Django Elastic Beanstalk 部署问题:wsgi.py 无法作为 Python 模块加载
- reactjs - 在 React 中使用 Jest 编写测试用例
- php - php Url 获取数组问题