Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux上使用Python更改IP设置_Python_Linux_Ubuntu_Network Programming - Fatal编程技术网

在Linux上使用Python更改IP设置

在Linux上使用Python更改IP设置,python,linux,ubuntu,network-programming,Python,Linux,Ubuntu,Network Programming,我需要提供一个Python程序,允许用户动态更改其设备的网络参数(IP、掩码、DNS和网关)。例如,将他的IP从192.168.1.10/24更改为192.168.1.15/24。我不想以root用户身份运行我的程序,但我可以给我的用户一些特定的权限(例如,将用户添加到可以修改/usr/network/interfaces文件的组中) 我找到的是这个库,但它只提供IP和掩码修改,需要以root用户身份运行(或者可能我误用了它) 我可能可以通过解析接口文件并运行一些bash/shell命令来实现这

我需要提供一个Python程序,允许用户动态更改其设备的网络参数(IP、掩码、DNS和网关)。例如,将他的IP从192.168.1.10/24更改为192.168.1.15/24。我不想以root用户身份运行我的程序,但我可以给我的用户一些特定的权限(例如,将用户添加到可以修改
/usr/network/interfaces
文件的组中)

我找到的是这个库,但它只提供IP和掩码修改,需要以root用户身份运行(或者可能我误用了它)

我可能可以通过解析
接口
文件并运行一些bash/shell命令来实现这一点,但我不想重新发明轮子。我很确定有些人已经有了我的问题,并且做了一些很棒的事情


我在Ubuntu 12.04上运行。我需要我的程序也能在Ubuntu 14.04、CentOS和RedHat上运行。你应该试着创建一个程序必须执行的操作的完整列表。我发现在类似的环境中,为了响应用户交互,我们必须:

  • 修改配置文件(
    interfaces
    host
    resolv.conf
    ,…)
  • 回显到sysfs以更改某些设置
  • 启动/停止某些网络服务
  • 切换防火墙配置(我们也通过init脚本实现)
我们最终创建了一个Bash脚本,它有一个定义良好的接口,某个非特权用户可以使用
sudo
从任何其他程序调用该接口


但是,我们基于对话框的前端已经用Bash编写,因此我们没有花太多时间寻找现有库,这对于您的情况来说肯定是值得的。

您能否澄清一下,是要修改网络配置文件,还是要动态更改IP地址和子网掩码,例如,我希望能够更改本地IP地址(例如从192.168.1.10/24更改为192.168.1.11/24)。感谢这些示例,如果我没有找到任何库来做我想做的事情,我将编写自己的bash或python脚本,但那将是不幸的,你肯定是按正确的顺序做的:-)祝你好运。