在循环中返回负结果

2023-12-01

我无法确定代码中的确切问题。我有两个功能——inrange(),检查端口是否在范围内,以及filt(),它接受一个 txt 文件,查找关键字“UDP”或“TCP”,查看端口(紧接在 : 标记之后),并检查该数字是否在范围内。

def inrange(file,character, num): 
    with open(file, 'r') as r:
        for lines in r:
            for key, value in sshd.items():
                if character == key and character in lines:
                    if num in sshd.get(character):
                        return True
                    else:
                        return False

                elif character == key and character in lines:
                    if num in sshd.get(character):
                        return True
                    else:
                        return False

目前这是专门针对 sshd 的。

def filt(file):
    with open(file, 'r') as r:
        for i, line in enumerate(r):
            if "sshd"  in line:
                plusOne = i + 1
                newline = line.strip()
                splitIt = newline[7:22]
                my_string = splitIt.split(":", 1)[1]
                if inrange(file, "TCP", int(my_string)):
                    print("Line " + str(plusOne) + " is in range" + " " + my_string)    
                elif inrange(file, "UDP", int(my_string)):
                    print("Line " + str(plusOne) + " is in range" + " " + my_string)     
                else:
                    print("Not in range")

现在,如果我将此作为我的文本文件,这就可以了-

活跃连接数

  Proto  Local Address          Foreign Address        State           PID
  UDP    0.0.0.0:123             0.0.0.0:0             LISTENING       5987  sshd

如您所见,如果您查看字典,则 UDP 123 在范围内sshd多于。作为回报,我得到了真实的陈述。如果我将 UDP 更改为 TCP,它会返回一个否定语句。这样可行。当我向其中添加不止一行时,就会出现问题。

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  UDP    0.0.0.0:123             0.0.0.0:0             LISTENING       5987  sshd
  TCP    0.0.0.0:123             0.0.0.0:0             LISTENING       5987  sshd
  UDP    0.0.0.0:123             0.0.0.0:0             LISTENING       5987  sshd
  TCP    0.0.0.0:123             0.0.0.0:0             LISTENING       5987   sshd

我得到了所有积极的结果:

Line 5 is in range 123    
Line 6 is in range 123    
Line 7 is in range 123    
Line 8 is in range 123 

事实并非如此,因为第 6 行和第 8 行是端口 123 中的 TCP,该端口不在范围内。我觉得我在这里缺少一些明确的东西。想不通。


您正确地查找了该字符串sshd按行方式,但搜索字符串TCP and UDP在整个文件中。由于只有一行 UDP 和 123,因此每次调用inrange(file, "UDP", int(my_string)):即使当前行中有 TCP,也会返回 true。

您应该从当前行中提取原型。就像是

    proto = newline[:3]
    if (proto in ['UDP', 'TCP']) and inrange(file, proto, int(my_string)):
        print("Line " + str(plusOne) + " is in range" + " " + my_string)    
    else:
        print("Not in range")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在循环中返回负结果 的相关文章

  • python中的编码检测库[重复]

    这个问题在这里已经有答案了 这在某种程度上与我的问题有关here https stackoverflow com questions 2305997 unicodedecodeerror problem with mechanize 我处理
  • 使用 Marshmallow 中的数据更新行 (SQLAlchemy)

    我正在使用 Flask Flask SQLAlchemy Flask Marshmallow marshmallow sqlalchemy 尝试实现 REST api PUT 方法 我还没有找到任何使用 SQLA 和 Marshmallow
  • 错误只有 size-1 数组可以转换为 Python 标量

    我有这个代码 for a in data X for i in a if not i isdigit x hash i data X column row x row row 1 row 0 column column 1 desired
  • OpenCV Python 删除图像中的某些对象

    我正在使用带有 opencv 和 numpy 的 python 来检测天文中的星星 例如这个1 https i stack imgur com AKwEJ jpg图片 使用模板匹配 我可以用阈值检测星星 单击 2 2 https i sta
  • 同情因子简单关系

    我在 sympy 中有一个简单的因式分解问题 无法解决 我在 sympy 处理相当复杂的积分方面取得了巨大成功 但我对一些简单的事情感到困惑 如何得到 phi 2 2 phi phi 0 phi 0 2 8 因式分解 phi phi 0 2
  • 在一张图中同时绘制两个截面强度

    我有一个形状数组 512 512 看起来像 行 x 列 y 密度 z 数组的数量 0 012825 0 020408 0 022976 0 015938 0 02165 0 024357 0 036332 0 031904 0 025462
  • 01 无效令牌[重复]

    这个问题在这里已经有答案了 嘿 学习 python3有一段时间了 遇到字典和dictionary name get 方法并尝试获取随机键值 问题 data data get key 1 它有效并且返回 1 但如果我使用data get ke
  • 用于打印 C/C++ 文件的所有函数定义的 Python 脚本

    我想要一个 python 脚本来打印 C C 文件中定义的所有函数的列表 e g abc c定义两个函数为 void func1 int func2 int i printf d i return 1 我只想搜索文件 abc c 并打印其中
  • Docker:通过 Gunicorn 运行 Flask 应用程序 - Worker 超时?表现不佳?

    我正在尝试创建一个用Python Flask编写的新应用程序 由gunicorn运行 然后进行dockerized 我遇到的问题是 docker 容器内的性能非常差 不一致 我最终得到了响应 但我不明白为什么性能会下降 有时我会在日志中看到
  • Python/Flask:应用程序在关闭后正在运行

    我正在开发一个简单的 Flask Web 应用程序 我使用 Eclipse Pydev 当我开发该应用程序时 由于代码更改 我必须经常重新启动该应用程序 这就是问题所在 当我运行该应用程序时 我可以在本地主机上看到该框架 这很好 但是当我想
  • 检查对象数组中的多个属性匹配

    我有一个对象数组 它们都是相同的对象类型 并且它们有多个属性 有没有办法返回一个较小的对象数组 其中所有属性都与测试用例 字符串匹配 无论该属性类型是什么 使用列表理解all http docs python org 3 library f
  • 超时时杀死或终止子进程?

    我想尽可能快地重复执行子进程 然而 有时这个过程会花费太长的时间 所以我想杀死它 我使用 signal signal 如下所示 ppid pipeexe pid signal signal signal SIGALRM stop handl
  • 将带有两层分隔符的字符串转换为字典 - python

    给定一个字符串 s x t1 ny t2 nz t3 我想转换成字典 sdic x 1 y 2 z 3 我通过这样做让它工作 sdic dict tuple j split t for j in i for i in s split n F
  • Scrapy - 不会爬行

    我正在尝试运行递归爬行 由于我编写的爬行不能正常工作 因此我从网络上提取了一个示例并进行了尝试 我真的不知道问题出在哪里 但是爬行没有显示任何错误 谁能帮我这个 另外 是否有任何逐步调试工具可以帮助理解蜘蛛的爬行流程 非常感谢任何与此相关的
  • 如何从c++调用python

    我是Python新手 我尝试像这样从 C 调用 python 脚本 在 Raspberry Pi 中 std string pythonCommand python Callee py a b int res system pythonCo
  • 通过套接字发送字符串(python)

    我有两个脚本 Server py 和 Client py 我心中有两个目标 能够从客户端一次又一次地向服务器发送数据 能够将数据从服务器发送到客户端 这是我的 Server py import socket serversocket soc
  • Pandas - 分割大的Excel文件

    我有一个大约有 500 000 行的 Excel 文件 我想将其拆分为多个 Excel 文件 每个文件有 50 000 行 我想用熊猫来做 这样它会是最快和最简单的 有什么想法如何制作吗 感谢您的帮助 假设您的 Excel 文件只有一个 第
  • tweepy 流到 sqlite 数据库 - 语法错误[重复]

    这个问题在这里已经有答案了 可能的重复 tweepy 流到 sqlite 数据库 语法无效 https stackoverflow com questions 9434205 tweepy stream to sqlite database
  • 通过子类化 `io.TextIOWrapper` 来子类化文件 - 但它的构造函数有什么签名?

    我正在尝试子类化io TextIOWrapper下列的这个帖子 https stackoverflow com a 23796737 974555 虽然我的目标不同 以此开始 注意 动机 https stackoverflow com a
  • python 的 fcntl.flock 函数是否提供文件访问的线程级锁定?

    Python 的 fcnt 模块提供了一种名为 flock 1 的方法来证明文件锁定 其描述如下 对文件执行锁定操作op 描述符 fd 文件对象提供 fileno 方法被接受为 出色地 请参阅 Unix 手册集群 2 了解详情 在某些系统上

随机推荐