(flow: dns.DNSFlow)
| 17 | |
| 18 | |
| 19 | def dns_request(flow: dns.DNSFlow) -> None: |
| 20 | q = flow.request.question |
| 21 | if q and q.type == dns.types.AAAA: |
| 22 | logging.info(f"Spoofing IPv6 records for {q.name}...") |
| 23 | if q.name == "example.com": |
| 24 | flow.response = flow.request.succeed( |
| 25 | [ |
| 26 | dns.ResourceRecord( |
| 27 | name="example.com", |
| 28 | type=dns.types.AAAA, |
| 29 | class_=dns.classes.IN, |
| 30 | ttl=dns.ResourceRecord.DEFAULT_TTL, |
| 31 | data=ipaddress.ip_address("::1").packed, |
| 32 | ) |
| 33 | ] |
| 34 | ) |
| 35 | elif q.name == "example.org": |
| 36 | flow.response = flow.request.fail(dns.response_codes.NXDOMAIN) |
| 37 | else: |
| 38 | flow.response = flow.request.succeed([]) |
nothing calls this directly
no test coverage detected
searching dependent graphs…