for tr_elem in tr: tr_elem.lookup_geoloc(ml) tr_elem.lookup_asnum(al) tr_elem.set_fqdn() tr_elem.update_db(conn) #print tr lock.release() else: print "cannot acquire lock file" sys.exit(0) else: # just left-over debugging code mode = "L" start = 1 if sys.argv[1][0] == '-': mode = sys.argv[1][1] start = 2 interests = create_from_file({}, InterestAttribute.factory, "interests.txt") print interests owners = create_from_file({}, CHOwner.factory, "owners.txt") print owners chotels = create_from_file({}, CHotel.factory, "chotels.txt") print chotels for addr in sys.argv[start:]: print "%-16s" % addr, print ml.query_dquad(addr), print " AS"+str(al.query_dquad(addr)[0]) del al del ml
# bogus "reasonable default" announcements. The # RouteViews data does not have this "feature". # edit this variable to either True or False do_update=True # ###################################################### from ixmaps import ASNumSockLookup,DBConnect def update_asn(conn, ip_addr, rv_asn): conn.query("update ip_addr_info set asnum=%d where ip_addr='%s'" % (rv_asn, ip_addr)) al = ASNumSockLookup("A") conn = DBConnect.getConnection() dr = conn.query("select ip_addr,asnum,p_status from ip_addr_info").dictresult() diff_count = 0 for d in dr: rv_asn = int(al.query_dquad(d['ip_addr'])[0]) if rv_asn != d['asnum']: print "%(ip_addr)s %(asnum)d s=%(p_status)s" % d, print rv_asn diff_count += 1 if do_update: update_asn(conn, d['ip_addr'], rv_asn) print "%d IPv4 addrs, %d differing ASnums" % (len(dr), diff_count)