鄙人不才,又写了个鸡肋的轮子,既然写了,还是介绍下吧
工作原理:获取所有Docker容器的IP地址,添加到 hosts 文件
我丰富的经验告诉我 Go 的 Docker 库很成熟了,So
import "github.com/docker/docker/client"
先连接 Docker 服务端
Cli, err = client.NewClientWithOpts(client.FromEnv)
列出所有的 Docker 容器
list, err := Cli.ContainerList(context.Background(), types.ContainerListOptions{})
待会拿到了IP和名字怎么处理呢?[]string
? map[string]string
? []struct{}
?
For 循环 获取容器名称和IP
for i := 0; i < len(list); i++ {
name := list[i].Names[len(list[i].Names)-1], "/", "", -1)
for _, v := range list[i].NetworkSettings.Networks {
if v.IPAddress != "" {
hostNow[name] = v.IPAddress
}
break // 只记录第一个IP
}
}
接着就是复杂的条件语句,怎么处理 历史记录和当前记录,以及各种性能调优,先放一图,见笑!
介绍一下实际用途:
Github: https://github.com/XRSec/AUDCH/
最近赞少的可怜,点个赞吧😂
原文始发于微信公众号(XRSec):AUDCH 自动更新HOSTS
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论