python-3.x - 使用 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 - ImportError:无法从“allennlp.nn.util”导入名称“last_dim_softmax”
- c++ - 我可以确定向量包含对象而不是指向对象的指针吗?
- python - 如何测试将记录作为参数的函数?
- network-programming - 热插入物理接口时 systemd-networkd 不会创建虚拟接口
- flutter - 在 Flutter 应用程序中单击时如何为下拉按钮中的项目设置填充
- sql - 1 个表的 Select 语句返回新行,然后该表实际具有
- azure-devops - 无法使用 Azure Pipelines FTP 上传文件
- python - PyQT - 找不到模块
- javascript - 如何在 html 页面中使用循环设置 css 设计
- mysql - MySQL用户属于组织