2014-01-13 35 views
0

我想從一個接口刪除IP地址時,我通過接口函數,在本例中是eth0傳入從接口刪除IP?

我想呼籲的bash這樣做,並執行這一命令的。

ip addr show dev eth0 | grep inet | (while read a b c; do del $b; done) 

我怎麼會在最好的pythonic意義上,os.system,subprocess.popen?有沒有其他方式可以處理這個問題呢?

回答

1

要查找IP地址,您可以使用python模塊netifaces, ,但要刪除它們,您無論如何都需要運行ip

你的腳本的Python的直接翻譯是這樣的:

for line in subprocess.Popen(
       ["ip", "addr", "show", "dev", "eth0"], 
       stdout=subprocess.PIPE).communicate()[0].splitlines(): 
    if 'inet' in line: 
    subprocess.Popen(["ip", "addr", "del", line.split()[1], "dev", "eth0"]) 

當然,你需要添加不同的錯誤檢查和異常處理,以使你的代碼穩定。

+0

謝謝大家。我確實'str'沒有來自你的代碼的屬性readlines! – Paul

+0

@保羅:噢,對不起,當然是'splitlines'。並感謝您的提示! –