2012-10-10 76 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]