{"id":13522494,"url":"https://github.com/lanyi1998/DNSlog-GO","last_synced_at":"2025-03-31T22:31:34.284Z","repository":{"id":39656804,"uuid":"293111465","full_name":"lanyi1998/DNSlog-GO","owner":"lanyi1998","description":"DNSLog-GO 是一款golang编写的监控 DNS 解析记录的工具，自带WEB界面 / DNSLog-GO is a monitoring tool written in Golang that monitors DNS resolution records. It comes with a web interface.","archived":false,"fork":false,"pushed_at":"2024-08-28T05:39:49.000Z","size":10904,"stargazers_count":1137,"open_issues_count":5,"forks_count":190,"subscribers_count":16,"default_branch":"master","last_synced_at":"2025-03-25T07:11:16.164Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lanyi1998.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-09-05T16:18:57.000Z","updated_at":"2025-03-23T13:28:55.000Z","dependencies_parsed_at":"2024-11-02T06:31:35.289Z","dependency_job_id":"89b407a5-b90c-4430-98c5-97875bb036ae","html_url":"https://github.com/lanyi1998/DNSlog-GO","commit_stats":null,"previous_names":[],"tags_count":17,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanyi1998%2FDNSlog-GO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanyi1998%2FDNSlog-GO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanyi1998%2FDNSlog-GO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lanyi1998%2FDNSlog-GO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lanyi1998","download_url":"https://codeload.github.com/lanyi1998/DNSlog-GO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246404843,"owners_count":20771681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-01T06:00:47.957Z","updated_at":"2025-03-31T22:31:33.881Z","avatar_url":"https://github.com/lanyi1998.png","language":"Go","funding_links":[],"categories":["DNS","Go","StandAlone Projects"],"sub_categories":[],"readme":"简介\n---\nDNSLog-GO 是一款golang编写的监控 DNS 解析记录的工具，自带多用户WEB界面\n\n演示截图:\n\n![avatar](https://github.com/lanyi1998/DNSlog-GO/raw/master/images/demo.png)\n\n安装\n---\n\n详细图文教程:https://mp.weixin.qq.com/s/m_UXJa0imfOi721bkBpwFg\n\n# 1.获取发行版\n\n这里 https://github.com/lanyi1998/DNSlog-GO/releases 下载最新发行版,并解压\n\n或者docker启动\n```shell\nwget https://raw.githubusercontent.com/lanyi1998/DNSlog-GO/master/config.yaml\n#修改你的config.yaml文件\ndocker run -d -p 53:53 -p 53:53/udp -p 8000:8000 -v `pwd`/config.yaml:/DNSlog-GO/config.yaml --name dnslog --privileged lanyi1998/dnslog-go:latest\n#设置开机启动\ndocker update --restart=always dnslog\n```\n\n# 2.域名与公网 IP 准备\n\n```\n搭建并使用 DNSLog，你需要拥有一个域名如(a.com),还需要有一个公网 IP 地址(如：1.1.1.1)\n    \n修改 a.com 的 NS 记录为 \n\nNS1.vpsip.NIP.IO\nNS2.vpsip.NIP.IO\n\n如 \nns1.1.1.1.1.nip.io\nns1.1.1.1.1.nip.io\n\n本步骤中，需要在域名提供商提供的页面进行设置，部分域名提供商只允许修改 NS 记录为已经认证过的 NS 地址。所以需要找一个支持修改 NS 记录为自己 NS 的域名提供商。\n    \n注意: NS 记录修改之后部分地区需要 24-48 小时会生效\n```\n\n# 3.修改配置文件 config.ini\n\n```\nHTTP:\n  port: 8000 //http web监听端口\n  #{\"token\":\"用户对应子域名\"}\n  user: { \"admin\": \"admin\" } //用户admin 对应的dnslog子域名是 admin.demo.com\n  consoleDisable: false  //是否关闭web页面\nDns:\n  domain: demo.com //dnslog域名\n```\n\n# 4.启动对应系统的客户端\n\n**注意服务端重启以后，如果修改了用户对应子域名，必须清空一下浏览器中的localStorage,否则会获取不到数据**\n\n---\n\nAPI Python Demo\n\n```python\nimport requests\nimport random\nimport json\n\n\nclass DnsLog():\n    domain = \"\"\n    token = \"\"\n    Webserver = \"\"\n\n    def __init__(self, Webserver, token):\n        self.Webserver = Webserver  # dnslog的http监听地址，格式为 ip:端口\n        self.token = token  # token\n        # 检测DNSLog服务器是否正常\n        try:\n            res = requests.post(\"http://\" + Webserver + \"/api/verifyToken\", json={\"token\": token}).json()\n            self.domain = res.Msg\n        except:\n            exit(\"DnsLog 服务器连接失败\")\n        if res[\"Msg\"] == \"false\":\n            exit(\"DnsLog token 验证失败\")\n\n    # 生成随机子域名\n    def randomSubDomain(self, length=5):\n        subDomain = ''.join(random.sample('zyxwvutsrqponmlkjihgfedcba', length)) + '.' + self.domain\n        return subDomain\n\n    # 验证子域名是否存在\n    def checkDomain(self, domain):\n        res = requests.post(\"http://\" + self.Webserver + \"/api/verifyDns\", json={\"Query\": domain},\n                            headers={\"token\": self.token}).json()\n        if res[\"Msg\"] == \"false\":\n            return False\n        else:\n            return True\n\n\nurl = \"http://192.168.41.2:8090/\"\n\ndns = DnsLog(\"1111:8888\", \"admin\")\n\nsubDomain = dns.randomSubDomain()\n\npayload = {\n    \"b\": {\n        \"@type\": \"java.net.Inet4Address\",\n        \"val\": subDomain\n    }\n}\n\nrequests.post(url, json=payload)\n\nif dns.checkDomain(subDomain):\n    print(\"存在FastJosn\")\n```\n\n## Stargazers over time\n\n[![Stargazers over time](https://starchart.cc/lanyi1998/DNSlog-GO.svg)](https://starchart.cc/lanyi1998/DNSlog-GO)\n\n## 404星链计划\n\n[![Stargazers over time](https://github.com/knownsec/404StarLink-Project/raw/master/logo.png)](https://starchart.cc/lanyi1998/DNSlog-GO)\n\nDNSlog-Go 现已加入 [404星链计划](https://github.com/knownsec/404StarLink)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanyi1998%2FDNSlog-GO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flanyi1998%2FDNSlog-GO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flanyi1998%2FDNSlog-GO/lists"}