Python网络扫描器参数判断if语句逻辑相反如何正确赋值变量?
问题修复方案
核心错误原因
get_arguments()返回的是argparse.Namespace类型的对象,不可能等于空字符串"",因此你写的if options == ""条件永远不成立,所有场景都会走else分支,导致逻辑和预期完全相反。你需要判断的是参数里的target字段是否为空,未传入参数时options.target的值为None。
修正后的判断逻辑
将代码末尾的if-else替换为以下内容即可:
if not options.target: # 未传参时使用默认网段 scan_result = scan(ip_range) else: # 传参时使用用户指定的目标地址/网段 scan_result = scan(options.target)
额外注意事项
你代码首行的shebang声明少了斜杠,修正为#!/usr/bin/env python,否则直接执行脚本时会触发报错。
内容的提问来源于stack exchange,提问作者Kurdish Learner
相关产品推荐
相关产品推荐

