1

私はDjangoでいくつかのネットワークアプリを作成しようとしています.そして私が尋ねたいこと:サーバーが「nmap」でそれをスキャンするよりも、クライアントタイプのIPアドレスを次のようにすることは可能ですか?その後、結果がDjango アプリ、そして私はそれを使ってたくさんのことをしています。

それを作ることが可能かどうか知りたいだけですか、それともばかげているように聞こえますか?

4

2 に答える 2

1

私の提案は、次のようなものです。

pout,perr = subprocess.Popen(['nmap', '192.168.1.2', '-oX', '-'], shell=False, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

xml_results = pout.read()

少しググると、いくつかの nmapXML -> Python dict スクリプトも浮かんでいます。

このアプローチには多少の問題があります - それはあまりうまくスケーリングしないため、単純なアプローチと呼ぶか、マシンが ping を実行せず、nmap がスロースキャンにフォールバックするようなものに対処します (状況によっては文字通り数時間かかる場合があります)。ターゲット ネットワーク)

nmap を非同期で実行し、ステータスをユーザーに返すことができるサーバーを作成することを検討してください。また、進行中のスキャンをキャンセルする機能も備えています。

于 2012-09-16T06:43:05.563 に答える