# Copyright (c) Samuel Thibault # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # 1. Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in the # documentation and/or other materials provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY Samuel Thibault ``AS IS'' AND ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF # MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO # EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, # INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, # OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF # LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE # OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF # ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. LDLIBS=-lfl CFLAGS=-g HOST=whois.ripe.net LEVEL2=yes LEVEL3=yes TRANSITS+=20766 # GITOYEN(20766) ifeq ($(LEVEL2),yes) TRANSITS+=39389 39886 50665 6461 6738 TRANSITS+=24776 29075 31553 39180 39389 39886 50665 6738 ifeq ($(LEVEL3), yes) # Cursys (39389) TRANSITS+=28855 # Nomotech (39886) TRANSITS+=8220 # Linagora (50665) TRANSITS+=50618 # Abovenet (6461) is US IGNORED+=6461 # DRI (6738) TRANSITS+=8304 IGNORED+=174 # INFOCLIP (24776) TRANSITS+=25358 6461 IGNORED+=3257 # IELO (29075) # EDPNETRU (31553) TRANSITS+=12838 IGNORED+=9031 # EUROPEASP (39180) TRANSITS+=30781 6461 8218 IGNORED+=174 endif endif TRANSITS+=29075 # IELO(29075) ifeq ($(LEVEL2),yes) TRANSITS+=20766 TRANSITS+=20766 31576 3549 6461 8218 TRANSITS+=30948 31564 31576 34783 35625 44583 9036 IGNORED+=174 48920 9009 5511 ifeq ($(LEVEL3), yes) # COGENT (174 is US # MOGEIX (31576) TRANSITS+=35283 IGNORED+=174 # Abovenet (6461) is US IGNORED+=6461 # GBLX (3549) TRANSITS+=3549 # NEO (8218) TRANSITS+=25358 # (31564) TRANSITS+=29215 IGNORED+=8928 # (31576) TRANSITS+=35283 41498 42929 IGNORED+=174 # (34783) IGNORED+=13193 # (35625) TRANSITS+=24935 31576 49960 IGNORED+=174 15557 # (44583) IGNORED+=702 # (9036) IGNORED+=8928 15557 endif endif TRANSITS+=2200 # Renater (2200) ifeq ($(LEVEL2), yes) TRANSITS+=20965 3356 IGNORED+=1273 ifeq ($(LEVEL3), yes) # GEANT (20965) TRANSITS+=11537 19401 24489 24490 2697 27750 2907 293 297 3549 6509 IGNORED+=1299 # LEVEL3 (3356) is US endif endif TRANSITS_DOTS=$(addsuffix .dot,$(addprefix AS,$(TRANSITS))) NAMES=$(TRANSITS_DOTS:.dot=.name) $(addsuffix .name,$(addprefix AS,$(IGNORED))) all: rpsl name graph.fig %.fig: %.dot Makefile dot -Nshape=polygon -Tfig -o $@ $< # It's convenient to keep these in cache. .PRECIOUS: AS%.txt AS%.txt: (whois -h $(HOST) AS$* ; whois AS$*) > $@ AS%.dot: AS%.txt rpsl < $< ./rpsl > $@ AS%.name: AS%.txt name < $< ./name > $@ graph.dot: $(TRANSITS_DOTS) $(NAMES) Makefile ( \ echo "strict digraph deps {"; \ cat $(NAMES) ; \ for i in $(IGNORED) ; do echo "\"AS$$i\" [ shape=ellipse ]" ; done ; \ echo "\"AS702\" [ label=\"Verizon\\n\(AS702\)\" ]" ; \ cat $(TRANSITS_DOTS) ; \ echo "}"; \ ) > $@ clean: -rm graph.fig *.dot *.name rpsl name distclean: clean -rm *.txt