Heim  >  Fragen und Antworten  >  Hauptteil

Python – Lösung des IP-Segmentierungsproblems

Es gibt eine solche IP: „192.168.1.1-5,192.168.1.10-15“
Ich möchte, dass sie ausgegeben wird als:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192. 168 .1.5
192.168. 1.10
192.168.1.11
192.168.1.12
192.168.1.13
192.168.1.14
192.168.1.15
Gibt es einen guten Weg? Ich kann die Textverarbeitung in Yi Language verwenden, um dies umzusetzen. Da ich mit Python noch nicht sehr vertraut bin, würde ich gerne jemanden bitten, mir ein paar Ideen zu geben.

曾经蜡笔没有小新曾经蜡笔没有小新2710 Tage vor846

Antworte allen(2)Ich werde antworten

  • PHPz

    PHPz2017-05-18 10:47:55

    a = "192.168.1.1-5,192.168.1.10-15"
    
    # 根据逗号分隔不同的ip, 结果是一个列表[192.168.1.1-5, 192.168.1.10-15]
    for ip in a.split(','):
        # ip就是遍历刚才的列表取得值, 根据.从右到左分割一次ip字符串, 获取结果192.168.1和1-5, 分别存给两个变量
        shuffix, _ = ip.rsplit('.', 1)
        # 用-切分1-5, 得出一个范围区间
        start, end = map(int, _.split('-'))
        for num in range(start, end+1):
            # num为上述范围区间的数, 然后拼接一开始的字符串, 组成新ip
            print('{}.{}'.format(shuffix, num))

    Antwort
    0
  • 过去多啦不再A梦

    过去多啦不再A梦2017-05-18 10:47:55

    # coding: utf-8
    
    import os
    
    str = '192.168.1.1-5,192.168.1.10-15'
    
    for x in str.split(','):
        _, y = os.path.splitext(x)
        start, end = y.replace('.', '').split('-')
        for i in range(int(start), int(end) + 1):
            print '{}.{}'.format(_, i)

    Antwort
    0
  • StornierenAntwort