{"id":21464299,"url":"https://github.com/shuque/check_serial","last_synced_at":"2026-03-09T04:03:54.157Z","repository":{"id":143298413,"uuid":"94899287","full_name":"shuque/check_serial","owner":"shuque","description":"Check DNS zone serial numbers","archived":false,"fork":false,"pushed_at":"2025-05-24T11:15:54.000Z","size":29,"stargazers_count":3,"open_issues_count":0,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-26T02:42:15.230Z","etag":null,"topics":["authoritative","checker","dns","drift","number","serial","server","soa"],"latest_commit_sha":null,"homepage":null,"language":"Python","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/shuque.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2017-06-20T14:18:14.000Z","updated_at":"2025-05-24T11:15:40.000Z","dependencies_parsed_at":null,"dependency_job_id":"fda2dcab-8230-4300-9c63-8215a28b4c1c","html_url":"https://github.com/shuque/check_serial","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/shuque/check_serial","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fcheck_serial","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fcheck_serial/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fcheck_serial/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fcheck_serial/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/shuque","download_url":"https://codeload.github.com/shuque/check_serial/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/shuque%2Fcheck_serial/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30282556,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-09T02:57:19.223Z","status":"ssl_error","status_checked_at":"2026-03-09T02:56:26.373Z","response_time":61,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["authoritative","checker","dns","drift","number","serial","server","soa"],"created_at":"2024-11-23T07:31:14.609Z","updated_at":"2026-03-09T04:03:50.671Z","avatar_url":"https://github.com/shuque.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# check_serial\nCheck DNS zone serial numbers\n\nGiven a DNS zone name, this script queries all the authoritative\nservers for the zone for their SOA record, and prints a line for\neach one with their SOA serial#, hostname, and IP address.\n\nOptional command line arguments can be used to specify additional\nservers to query (e.g. hidden masters, unadvertised secondaries etc),\nexplicit master server to compare serial numbers with, to restrict the\nqueries to only the IPv4 or IPv6 addresses of the servers, to specify\nthe allowed drift, specify the number of query retries for each server,\nand whether to set the DNSSEC-OK flag.\n\nThe exit status of the program is:\n\n  0  If serial numbers for every server are identical or do not\n     differ by more than ALLOWED_DRIFT (default 0)  \n  1  If serial numbers for some servers differ by more than ALLOWED_DRIFT  \n  2  If some servers failed to respond.  \n  3  If master server (if -m) failed to respond.\n  4  On program invocation error.\n\nAuthor: Shumon Huque \u003cshuque@gmail.com\u003e\n\nPre-requisites:\n\n   dnspython module ( http://www.dnspython.org/ )\n\nInstallation:\n\n```\npip3 install .\n```\n\nSample output:\n\n```\n$ check_serial.py\ncheck_serial.py version 1.1.2\nUsage: check_serial.py [Options] \u003czone\u003e\n\n       Options:\n       -4          Use IPv4 transport only\n       -6          Use IPv6 transport only\n       -c          Use TCP for queries (default: UDP with TCP on truncation)\n       -t N        Query timeout value (default 5 sec)\n       -r N        Maximum # SOA query retries for each server (default 5)\n       -d N        Allowed SOA serial number drift (default 0)\n       -m ns       Master server name/address to compare serial numbers with\n       -a ns1,..   Specify additional nameserver names/addresses to query\n       -z          Set DNSSEC-OK flag in queries (doesn't authenticate yet)\n       -n          Don't query advertised nameservers for the zone\n       -i          Query for, and print, each responding server's NSID string\n\n$ check_serial.py upenn.edu\n     1006027704 adns1.upenn.edu. 2607:f470:1001::1:a\n     1006027704 adns1.upenn.edu. 128.91.3.128\n     1006027704 adns2.upenn.edu. 2607:f470:1002::2:3\n     1006027704 adns2.upenn.edu. 128.91.254.22\n     1006027704 adns3.upenn.edu. 2607:f470:1003::3:c\n     1006027704 adns3.upenn.edu. 128.91.251.33\n     1006027704 dns1.udel.edu. 128.175.13.16\n     1006027704 dns2.udel.edu. 128.175.13.17\n     1006027704 sns-pb.isc.org. 2001:500:2e::1\n     1006027704 sns-pb.isc.org. 192.5.4.1\n$ echo $?\n0\n\n$ check_serial.py -m 10.10.10.11 -a 172.17.1.1 example.com\n     1002208334 [   MASTER] 10.10.10.11 10.10.10.11\n     1002208333 [        1] 172.17.1.1 172.17.1.1\n     1002208234 [      100] ns1.example.com. 10.15.1.1\n     1002208234 [      100] ns2.example.com. 10.16.1.1\n     1002208334 [        0] ns3.example.com. 10.17.1.1\n$ echo $?\n1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuque%2Fcheck_serial","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fshuque%2Fcheck_serial","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fshuque%2Fcheck_serial/lists"}