2012-02-28 4 views
0

私は現在、ネットワーク上のすべてのMACアドレスと対応する名前とIPアドレスのリストを作成するプログラムを持っています。MACがプログラムまたはデーモンを変更していますか?

理論的には、あなたが提供するリストに基づいてMACアドレスを毎時変更するバックグラウンドプログラムを作成することができるのだろうかと思っていました。リストは、既に述べたプログラムによって継続的に更新される。

私はPythonとBatchにはうまくいますが、今はMacシステムを実行しています(これは私がこのプログラムを実装したいものです)。そして、ネットワーク自体に関してはbashの知識はほとんどありません。時間に敏感なバックグラウンドタスクを作成する。

これがあまりにも広すぎる場合は、私にお知らせください。

ありがとうございました!

答えて

1

単純なスクリプトでこれを実行し、cronを使用して定期的に実行できます。ここで

は、あなたがそのMACアドレスをランダム化する方法を考え出す必要があると思います(hereから適応)シェルスクリプトから自分のMACアドレスを変更する方法の例

#NETWORKING="/etc/init.d/networking" # On some systems 
NETWORKING="service network"   # On my Fedora 16 box 

$NETWORKING stop 
ifconfig eth0 hw ether 02:01:02:03:04:08 
$NETWORKING start 

です。

次に、crontab -eを使用してcrontabに追加します。ここにはquick reference for crontabがあります。

ランダムなMACアドレスを生成して変更するためのPythonがあります。 MAC生成のみがテストされています(明らかな理由により)。また、MACアドレスのいくつかのバイトの範囲を制限することができますが、それは私の答えの範囲外です。

from subprocess import call 
import random 

mac = [random.randint(0, 0xFF) for i in range(6)]  
macstr = ':'.join(['{:02X}'.format(x) for x in mac]) 
print 'Changing MAC address to', macstr 

call(['service', 'network', 'stop') 
call(['ifconfig', 'eth0', 'hw', 'ether', macstr]) 
call(['service', 'network', 'start') 
+0

私は問題を抱えています。既存のリストからそのMACアドレスをランダム化します。私はそれがちょうどbashスクリプトなので、データや何かで読み込むことができません...しかし、cronのリファレンスに感謝! –

+0

私はおそらくpythonのようなものでそれをやろうと考えています –

+0

どうすればそのプログラムをバックグラウンドプロセスとして設定できますか? 私はMACアドレスをランダム化したくないので、ランダムにリストから取得します。だから、30分おきに、テキストファイルにリストされているMACアドレス(新しい行のそれぞれ)を取り出し、それを新しいMACアドレスとして設定します。 そのプログラム自体(私は '呼び出し'メソッドを知っている)はかなり簡単です、私の問題は、デーモンとしてのPythonプログラムを設定しています。 私はPythonでそれを作成し、そのPythonプログラムを呼び出すためのbashスクリプトを作成し、そのbashスクリプトをx時間ごとにpythonプログラムを起動するデーモンとして設定することを考えました。 –