首页 > 解决方案 > 使用 Scapy 的 Python 端口扫描器不起作用

问题描述

不知道我在哪里出错了。我无法让它正确运行。我也在最后一个“else”语句中不断出现语法错误。

if __name__ == '__main__':
    conf.verb = 0 # Disable verbose in sr(), sr1() methods
    start_time = time.time()
    ports = range(1, 1024)
    if is_up(ip):
        print("Host %s is up, start scanning" % ip)
        for port in ports:
            src_port = RandShort() # Getting a random port as source port
            p = IP(dst=ip)/TCP(sport=src_port, dport=port, flags='S') # Forging SYN packet
            resp = sr1(p, timeout=2) # Sending packet
            if str(type(resp)) == "<type 'NoneType'>":
                closed += 1
            elif resp.haslayer(TCP):
                if resp.getlayer(TCP).flags == 0x12:
                    send_rst = sr(IP(dst=ip)/TCP(sport=src_port, dport=port, flags='AR'), timeout=1)
                    openp.append(port)
                elif resp.getlayer(TCP).flags == 0x14:
                    closed += 1
        duration = time.time()-start_time
        print("%s Scan Completed in %fs" % (ip, duration))
        if len(openp) != 0:
            for opp in openp:
                print("%d open" % pop)
        print("%d closed ports in %d total port scanned" % (closed, len(ports))
        else:
            print("Host %s is Down" % ip)

标签: python-3.xscapy

解决方案


推荐阅读