如何在python中设置“ip地址”,“DNS”,“主机名”,“MAC地址”?

时间:2010-07-27 04:43:38

标签: python macos ip hostname nic

我想编写一个用于网络安全IP扫描的脚本,这样的工具可能需要欺骗它的主机NIC状态以进行测试,例如, 设置NIC的IP地址, 设置DNS地址, 在设置主机名时, MAC地址和 启用/禁用NIC适配器。

我用谷歌搜索,发现大部分灵魂都在使用“popen”调用系统现有工具,如

>>> import os
>>> p=os.popen("/sbin/ifconfig eth0")
>>> t=p.read()
>>> p.close() 

从系统返回。此外,模块可以读取NIC的状态,例如netifaces,但似乎所有模块都是“READ ONLY”但不能直接写入。

由于我发现没有模块可以直接设置NIC状态,所以我在这里请求帮助,看看是否有人可以伸出援助之手或显示更好的方式。

任何提示都会被批评。 谢谢!

RGS KC

2 个答案:

答案 0 :(得分:0)

我之前做过这个,没有明确的Python os接口来处理低级别的特定于操作系统的东西。您只需要编写(OS特定的)包装器到UNIX(/ Windows / Mac)命令。这并不难,只是乏味。

os.popen*() is very deprecated (since 2.4), use subprocess module

interface to subprocess.Popen() is admittedly irritating,你几乎肯定会为自己的理智写一个包装器来提供合理的默认arg值并整理你的代码。显然要密切关注命令退出状态,路径前缀等。不确定你对可移植性的关注程度。

答案 1 :(得分:0)

{{1}}