1 import subprocess
2 raw = raw_input("Filename:").lower()
3 ip = raw_input("Host:").lower()
4 cmd = subprocess.call("tcpdump -c5 -vvv -w" + " raw " + " ip ",shell=True)
これが私のスクリプトです。私は、生の入力を使用して、1つの主要な目的以外にすべてが機能します。それは私が欲しいものを何でも入力することを可能にします、しかしそれがファイルを保存するか、またはip / host doeを使用することになるとき、実際には何もしません。確かにそれは私にパケットを与えますが、ローカルホストから私が入力したホストではありません。
これが機能していないことをどのように知っているかは、最初の生の入力がファイル名であるためです。テストを行ったところ、スクリプトがあったフォルダーを見ると、「生」という意味のファイルが生成されますが、実際には私の「X」の中のものだけを使って入力してください...
だから私はこれに来るいくつかのチャンスを作ります:
1 import subprocess
2 raw = raw_input("Filename:").lower()
3 ip = raw_input("Host:").lower()
4 cmd = subprocess.call("tcpdump -c5 -vvv -w" + raw + "host" + ip,shell=True)
これは実際には-wを必要とするので素晴らしいですが、「raw」入力ではなくrawhostipとして保存されるようになりました。参考までに、これはターミナルでのコマンドの外観です。
tcpdump -c5 -vvv -w savename host wiki2
2つのvariablsはsavenameとwiki2だけで、残りはコマンドが機能するために必要です。
このスクリプトを使用すると、次のエラーが発生します。
import subprocess
raw = raw_input("Filename:").lower()
ip = raw_input("Host:").lower()
cmd = subprocess.call("tcpdump -c5 -vvv -w" + raw, "host" + ip,shell=True)
エラー:
Traceback (most recent call last):
File "te.py", line 4, in <module>
cmd = subprocess.call("tcpdump -c5 -vvv -w" + raw, "host" + ip,shell=True)
File "/usr/lib/python2.6/subprocess.py", line 480, in call
return Popen(*popenargs, **kwargs).wait()
File "/usr/lib/python2.6/subprocess.py", line 583, in __init__
raise TypeError("bufsize must be an integer")
TypeError: bufsize must be an integer
私は途方に暮れています。どんな助けでも素晴らしいでしょう、はい私はサイトのサブプロセスのドキュメントを見るのを知っています:X、私は私に教えるために人間が必要です、私は私が読んでいるものを理解していません。
私の質問は、これらの変数をどのように処理するかです。