2017-04-19 54 views
-1

使用python3如何可以從以下格式這從使用os.system()調用的標準輸出的總的可用地址:使用python3如何可以從以下格式總的可用地址:

------------------------------------------------ 
      TCP/IP NETWORK INFORMATION 
------------------------------------------------ 
IP Entered = ..................: 215.1.7.0 
CIDR = ........................: /24 
Netmask = .....................: 255.255.255.0 
Netmask (hex) = ...............: 0xffffff00 
Wildcard Bits = ...............: 0.0.0.255 
------------------------------------------------ 
Network Address = .............: 215.1.7.0 
Broadcast Address = ...........: 215.1.7.255 
Usable IP Addresses = .........: 254 
First Usable IP Address = .....: 215.1.7.1 
Last Usable IP Address = ......: 215.1.7.254 

任何建議將不勝感激。

+0

請說明你正在嘗試做什麼。你需要從示例中的「可用IP地址= .........:254」行中提取254號碼嗎? – acidtobi

+0

是的,要提取可用的全部地址(254,65534等),並且如果有逗號將其去掉,則可以對提取的數字進行數學運算。 –

回答

0

假設output_linesos.system()通話行的列表:

def find_usable_addresses(output_lines): 
    for line in output_lines: 
    if line.startswith('Usable IP Addresses'): 
     value = line.split(': ')[1] # split to ('Usable...', '254') 
     return int(value) 

該函數將返回None如果找不到該值。

+0

問題是,'os.system()'不會返回它運行命令的輸出流。請嘗試使用['popen'](https://docs.python.org/3/library/os.html#os.popen):'output_lines = os.popen('that command')。readlines()' – 9000

+0

對不起,我很難格式化我的評論給你,包括代碼。這一切都結束在一個單詞包裝線上。我感謝你的幫助,我會給os.popen()一個去。 –

+0

好吧,我取得了一些進展,但我得到這個錯誤__ValueError:無效的文字爲int()與基10:'65,534 \ n'__我需要以某種方式失去逗號? –

相關問題