2017-04-19 24 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'__我需要以某种方式失去逗号? –

相关问题