2012-10-10 150 views
1

我需要允许外部客户端更改程序运行的Linux机器的IP(C++)。我已经知道如何列出所有分配给它们的本地接口和当前IP。我也知道如何以编程方式更改所述IP。使网络更改永久 - C++

我需要知道的是如何使此更改成为永久性的,因此,如果计算机重新启动,它将保持相同的网络配置。 这样做的最好方法是什么?手动解析/ etc/network/interfaces?调用一些linux命令?

编辑:我正在使用Debian。

谢谢!

回答

3

是的,操纵/etc/network/interfaces是实现这一点的方法(只需存储备份以防万一出错)。另外,如果接口是由网络管理员管理的(服务器很少出现这种情况,但发生在桌面上),我想你可以通过dbus调用它。

你应该已经提到的分布,顺便说一句,不是语言 - 如果你没有提到的文件是不可能猜测;-)

+0

是的,对不起,我正在使用Debian 6.所以要走的路是手动解析和编辑/ etc/network/interfaces?该死......) – pparescasellas

+0

对此深感抱歉;-)其实,这不是一个大问题,尤其是如果没有其他人的文件打交道了 - 你甚至可以让您的数据更适合用于解析文件并生成'interfaces'从它。但是,你有这个想法;-) –

0

你可以调用脚本ifconfig和路线commands或更好,你可以编辑你提到的文件,这取决于你的Linux发行版。

1

要进行更改永久,你必须写在/etc/network/interfaces网络配置,也许DNS服务器(resolv.conf的)。

http://wiki.debian.org/NetworkConfiguration

如果你不想每次解析接口,可以为您节省了IP和网络的配置文件来恢复它。 然后你必须重写“/ etc/network/interfaces”。

更改网络接口配置后,必须重新启动网络堆栈(发行版专用)。

重启接口与auto

$ /etc/init.d/networking restart

重启其它接口:

$ ifup [iface]