Changeset 7936 in genesis


Ignore:
Timestamp:
May 18, 2010, 6:33:07 PM (15 years ago)
Author:
lodewijk
Message:

herschrijf het zoeken naar IP adressen. ipv de uitvoer van grep pakken, ga
zelf over */wleiden.conf's heen. hou variabelen bij, en handel vervolgens
references naar die variabelen af als er een "IP=" voorbij komt.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • nodes/getrange.py

    r7460 r7936  
    66import re
    77import sys
     8import glob
    89
    910size = 30
     
    1617numaddrs = 1 << (32 - size)
    1718
    18 ipre = re.compile("^IP=(172\.16\.[0-9]+\.[0-9]+)/([0-9]+) *")
     19substre = re.compile("^(\$[a-zA-Z][^ =]*) ?= ?'([^']*)';")
    1920
    2021def parseaddr(s):
     
    3031bezet = {}
    3132
    32 (cout, cin) = popen2.popen2("cat */wleiden.conf | grep ^IP | grep 172.16\...*\/[24\|26\|28\|29\|30]")
    33 cin.close()
    34 for l in cout.readlines():
    35         l = l[:-1]
    36         match = ipre.match(l)
    37         if match == None:
    38                 #print "'" + l + "'"
    39                 continue
    40         if len(match.groups()) == 0:
    41                 continue
    42         addr = parseaddr(match.group(1))
    43         mask = int(match.group(2))
    44         addr = addr & ~((1 << (32 - mask)) - 1)
    45         bezet[addr] = 1
     33for fname in glob.glob("*/wleiden.conf"):
     34        substs = {}
     35        for l in open(fname):
     36                l = l[:-1]
     37                match = substre.match(l)
     38                if match != None:
     39                        substs[match.group(1)] = match.group(2)
     40                if l.startswith("IP="):
     41                        right = l[3:]
     42                        if '/' not in right:
     43                                addr = right
     44                                mask = 32
     45                        else:
     46                                addr, mask = right.split('/')
     47                                if addr in substs:
     48                                        addr = substs[addr]
     49                        addr = parseaddr(addr)
     50                        mask = int(mask)
     51                        addr = addr & ~((1 << (32 - mask)) - 1)
     52                        bezet[addr] = 1
    4653
    4754i = 0xffffffffL
Note: See TracChangeset for help on using the changeset viewer.