2012-02-28 135 views
0

我目前有一个程序,它可以在我的网络上创建一个所有MAC地址以及相应名称和IP地址的列表。MAC更改程序或守护进程?

我想知道是否有可能(理论上)创建一个后台程序,它每小时都会根据您提供的列表更改您的MAC地址。该名单将不断由已经陈述的计划更新。

我很擅长使用Python和Batch,但我现在正在运行一个Mac系统(这是我想要实现此程序的原因),并且在涉及网络本身时几乎不知道bash,或者创建时间敏感的后台任务。

如果这个问题太宽泛,请让我知道。

谢谢!

回答

1

你可以用一个简单的脚本来完成这个任务,并定期使用cron来运行它。

下面是如何从shell脚本(改编自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 

所以,你需要拿出一个办法是随机的MAC地址。

然后,使用crontab -e将其添加到您的crontab。这是一个quick reference for crontab

这里有一些python来生成一个随机MAC地址并进行更改。只有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的参考! – 2012-02-28 04:57:50

+0

我可能会考虑这样做,像python然后 – 2012-02-28 05:26:54

+0

我将如何设置该程序作为后台进程? 我不想随机化MAC地址,我希望它随机从列表中取出。因此,每半个小时,就需要在文本文件中列出一个MAC地址(每个都在换行),并将其设置为新的MAC地址。这个程序本身(现在我知道'调用'方法)非常简单,我的问题是将python程序设置为守护进程。 我的想法是在python中创建它,然后创建一个bash脚本来调用该python程序,将该bash脚本设置为一个守护程序,该守护程序每x时间激活一次python程序。 – 2012-02-28 15:42:26