-
Notifications
You must be signed in to change notification settings - Fork 208
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Two or more records per domain #16
Comments
HI This would be really useful, I also need this functionality |
Would love this functionality too 👍 |
I hacked this in to support only the scenario that I needed, ipv4 and ipv6 lookups. Multiple values are separated by commas:
Changes: diff --git a/dnschef.py b/dnschef.py
index c57924d..bfe509b 100755
--- a/dnschef.py
+++ b/dnschef.py
@@ -127,9 +127,17 @@ class DNSHandler():
log.info(f"{self.client_address[0]}: cooking the response of type '{qtype}' for {qname} to {fake_record}")
# IPv6 needs additional work before inclusion:
+
if qtype == "AAAA":
- ipv6_hex_tuple = list(map(int, ip_address(fake_record).packed))
- response.add_answer(RR(qname, getattr(QTYPE,qtype), rdata=RDMAP[qtype](ipv6_hex_tuple)))
+ for ipv6 in fake_record.split(','):
+ ipv6_hex_tuple = list(map(int, ip_address(ipv6).packed))
+ response.add_answer(RR(qname, getattr(QTYPE,qtype), rdata=RDMAP[qtype](ipv6_hex_tuple)))
+
+ elif qtype == "A":
+ for ipv4 in fake_record.split(','):
+ # dnslib doesn't like trailing dots
+ if ipv4[-1] == ".": ipv4 = ipv4[:-1]
+ response.add_answer(RR(qname, getattr(QTYPE,qtype), rdata=RDMAP[qtype](ipv4)))
elif qtype == "SOA":
mname,rname,t1,t2,t3,t4,t5 = fake_record.split(" ")
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Hello.
How can I specify many records for something domain, like this:
*zone.com=1.2.3.4, 5.6.7.8
The text was updated successfully, but these errors were encountered: