对python来说还是个新手。我正在尝试将这个github项目(https://github.com/elceef/dnstwist)集成到一个更动态/自动化的工具中,这个工具将定期执行,查找弹出的新域名,将它们添加到mysql数据库中,并发出一封电子邮件通知需要调查新域名。我还处于让它工作的非常早期的阶段。以下是到目前为止的代码:
import os
bleh = []
def writefile():
sites = ['hi.com', 'ho.com']
for site in sites:
bleh.append(os.system("python dnstwist.py " + site + " | sed -e '1,8d' | grep -v -"))
print bleh
writefile()现在我想弄清楚的是如何从
os.system("python dnstwist.py " + site + " | sed -e '1,8d' | grep -v -")它输出类似以下内容:
Original* hi.com 205.178.189.129
Bitsquatting ii.com NS:queens1.tink.com MX:mxin.mxes.net
Bitsquatting ji.com 198.148.92.53
Bitsquatting li.com 168.63.6.189 MX:mail.li.com
Bitsquatting xi.com 94.56.83.199 MX:mailstore1.secureserver.net
Bitsquatting hh.com 38.75.9.218 MX:mailserv.hh.com
Bitsquatting hk.com NS:f.udrtld.net
Bitsquatting ha.com 206.123.52.10 MX:ironport.heritagecoin.com
Bitsquatting hy.com 121.40.153.241 MX:mxbiz1.qq.com
Homoglyph h1.com NS:ns1.sgi.net
Homoglyph hl.com 64.106.211.22 MX:mail1.hl.com
Repetition hii.com 104.209.45.42 MX:joy1.efwmx.net
Repetition hhi.com 64.71.33.90 MX:mail.hhi.com
Replacement ui.com 38.102.228.152 MX:smtp.secureserver.net
Replacement ni.com 96.45.82.97 MX:skprod2.natinst.com
Replacement bi.com 216.46.183.219
Replacement gi.com 144.188.20.66 MX:motorola.com.s5a1.psmtp.com
Replacement yi.com 184.168.221.104
Replacement h9.com 99.192.229.56 MX:h9.com
Replacement ho.com 69.172.201.208
Replacement hj.com 198.148.92.53
Replacement hu.com 83.222.226.95 MX:
Replacement h8.com 107.20.188.160 MX:westgate.dejan.net
Transposition ih.com 173.244.177.114
Original* 123.com 69.58.188.49 MX:mail.entelchile.net
Bitsquatting 023.com 75.126.6.168 MX:mail.023.com
Bitsquatting 323.com 220.181.57.217
Bitsquatting 523.com 198.148.92.48
Bitsquatting 923.com 121.199.16.140
Bitsquatting q23.com 198.148.92.62
Bitsquatting 103.com NS:dns6.iidns.com
Bitsquatting 163.com 123.58.180.8 MX:163mx03.mxmail.netease.com
Bitsquatting 1r3.com NS:f1g1ns2.dnspod.net
Bitsquatting 122.com 219.232.254.201 MX:mxbiz1.qq.com
Bitsquatting 121.com 124.16.31.159
Bitsquatting 127.com 123.58.180.8
Bitsquatting 12s.com 5.22.149.135 MX:mx2.emailsrvr.com
Insertion 1323.com NS:vip2.360dns.net
Insertion 1233.com 198.148.92.49
Insertion 1w23.com NS:ns4.51dns.com
Insertion 12w3.com 85.13.215.50
Insertion 1q23.com 121.199.54.199
Insertion 12q3.com 184.168.221.53 MX:smtp.secureserver.net
Insertion 1123.com 116.211.121.191 MX:mxbiz2.qq.com
Insertion 1213.com NS:ns0.netergy.com MX:mx0.forwarding.anynames.com
Replacement 223.com 198.44.249.20
Replacement 1w3.com 50.22.11.28 MX:1w3.com
Replacement 1q3.com 184.168.221.96 MX:mailstore1.secureserver.net并将每行单独取出字段并将其插入到数据库中。我知道如何使用awk来做到这一点,但我真的很想学习如何使用python来做到这一点。我可以在输出上使用什么方法/函数来提取每行上的字段?现在这行代码:
bleh.append(os.system("python dnstwist.py " + site + " | sed -e '1,8d' | grep -v -")) 在列表中返回0,0。
发布于 2015-10-01 00:05:57
与stdout连接的os.system的输出。你应该使用
os.popen("python dnstwist.py " + site + " | sed -e '1,8d' | grep -v -").read()而不是
os.system("python dnstwist.py " + site + " | sed -e '1,8d' | grep -v -")或者你可以使用subprocess模块。示例代码
import subprocess
output = subprocess.check_output("python dnstwist.py " + site + " | sed -e '1,8d' | grep -v -", shell=True)发布于 2015-10-01 00:07:00
os.system only返回退出值
相反,请使用
os.popen(cmd).read(),因为这将返回程序输出,但即使这样也不是真正推荐的,相反,您应该像应该使用的那样使用subprocess.Popen ...
https://stackoverflow.com/questions/32870707
复制相似问题