CalledProcessError:Command'('grep','route')'返回非零退出状态1

2024-10-01 19:22:22 发布

您现在位置:Python中文网/ 问答频道 /正文

Python3
OSX 10.13.2

我正在尝试制作FACEBOOK_WHITELIST,以便在收听webhook
时防止来自互联网的恶意攻击 我正在获取IP地址。这个命令非常简单,只需whoispipe和{}。在

问题:

def test():
    import subprocess
    ps = subprocess.Popen(
        ["whois", "-h", "whois.radb.net", "--", "'-i origin AS32934'"],
        stdout=subprocess.PIPE,
        stderr=subprocess.STDOUT
    )
    output = subprocess.check_output(('grep', 'route'), stdin=ps.stdout)
    ps.wait()

追踪:

^{pr2}$

然后我尝试了更小的函数调用。他们两个都不是工作。 第一个是单引号中的单字符串

In [46]: ps = subprocess.Popen(["whois", "-h", "whois.radb.net", "--", "'-i origin AS32934'"])
    ...:
    ...:

In [47]: %  No entries found for the selected source(s).

第二种方法是将字符串拆分为多个双引号字符串

In [48]: ps = subprocess.Popen(["whois", "-h", "whois.radb.net", "--", "'-i", "origin", "AS32934'"])

In [49]: %  No entries found for the selected source(s).
%  No entries found for the selected source(s).
%  No entries found for the selected source(s).

我哪里错了?在

更新:
@让·弗朗索瓦·法布

In [49]: ps = subprocess.Popen(["whois", "-h", "whois.radb.net", "--", "-i", "origin", "AS32934"])

In [50]: %% Attribute name after "-i" is invalid or unsupported.


%  No entries found for the selected source(s).
aut-num:    AS32934
as-name:    Facebook
descr:      Facebook
member-of:  AS-FACEBOOK
import:     from AS-ANY   accept ANY AND NOT {0.0.0.0/0}
export:     to AS-ANY   announce AS-FACEBOOK AND NOT {0.0.0.0/0}
admin-c:    FBNetEng
tech-c:     FBNetEng
notify:     noc@fb.com
mnt-by:     MAINT-AS32934
changed:    vvasilev@fb.com 20170627  #21:09:05Z
source:     RADB

参考文献:
CallProcessError
pipe grep


Tags: thenoinsourcefornetwhoisps
1条回答
网友
1楼 · 发布于 2024-10-01 19:22:22
ps = subprocess.Popen(["whois", "-h", "whois.radb.net", " ", "'-i origin AS32934'"])# Wrong

你引用最后一篇文章的尝试与Popen的引用是多余的。我无法测试,但您必须删除您添加的额外引号:

^{pr2}$

Popen检测参数中是否有空格,并根据需要自动引用。添加更多引号会使Popen添加更多引号,并且命令的参数是错误的。在

除非您需要分别传递每个参数,但由于您在第一个和最后一个参数中留下了引号,否则这样做的尝试也会失败。但这并不意味着:

ps = subprocess.Popen(["whois", "-h", "whois.radb.net", " ", "'-i", "origin", "AS32934'"]# Wrong

应该是

ps = subprocess.Popen(["whois", "-h", "whois.radb.net", " ", "-i", "origin", "AS32934"]

相关问题 更多 >

    热门问题