diff --git a/tv/gen_dns.ml b/tv/gen_dns.ml new file mode 100644 index 00000000..45e5fcd8 --- /dev/null +++ b/tv/gen_dns.ml @@ -0,0 +1,76 @@ +(* + * gen_dns.ml + * ---------- + * Copyright : (c) 2009, Jeremie Dimino + * Licence : BSD3 + *) + +(* Script écrit pour troller *) + +let () = + let direct = open_out "/etc/bind/generated/db.tv.crans.org" + and reverse = open_out "/etc/bind/generated/db.239.in-addr.arpa" + and chaines = open_in "/tmp/chaines_recup_sap.txt" in + + output_string direct "\ +$ORIGIN tv.crans.org. +$TTL 86400 +@ IN SOA mdr.crans.org. root.crans.org. ( + $serial ; numero de serie + 21600 ; refresh + 3600 ; retry + 1209600 ; expire + 86400 ; TTL +) + +@ IN NS mdr.crans.org. +@ IN NS rouge.crans.org. +@ IN NS sila.crans.org. +@ IN NS freebox.crans.org. + +@ IN A 138.231.136.243 + +"; + + output_string reverse "\ +$ORIGIN 239.in-addr.arpa. +$TTL 86400 +@ IN SOA mdr.crans.org. root.crans.org. ( + $serial ; numero de serie + 21600 ; refresh + 3600 ; retry + 1209600 ; expire + 86400 ; TTL +) + +@ IN NS mdr.crans.org. +@ IN NS rouge.crans.org. +@ IN NS sila.crans.org. +@ IN NS freebox.crans.org. + +"; + + let line_re = Str.regexp "^[^ ]+ \\(.*\\):\\(.*\\)$" + and ipv4_re = Str.regexp "^[0-9]+\\.\\([0-9]+\\)\\.\\([0-9]+\\)\\.\\([0-9]+\\)$" + and junk_re = Str.regexp "[ .():,\"]" in + try + while true do + let line = input_line chaines in + if Str.string_match line_re line 0 then begin + let name = Str.matched_group 1 line and ip = Str.matched_group 2 line in + let name = String.lowercase (Str.global_replace junk_re "" name) in + Printf.fprintf direct "%s IN A %s\n" name ip; + if Str.string_match ipv4_re ip 0 then + Printf.fprintf reverse "%s.%s.%s IN PTR %s.tv.crans.org\n" + (Str.matched_group 3 ip) + (Str.matched_group 2 ip) + (Str.matched_group 1 ip) + name + else + Printf.ksprintf failwith "mauvaise adresse IP(%S)!" ip + end + done + with End_of_file -> + close_in chaines; + close_out direct; + close_out reverse