1 ! Copyright (C) 2010 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: arrays command-line dns fry io kernel math.parser
4 namespaces sequences strings ;
7 : a-line. ( host ip -- )
8 [ write " has address " write ] [ print ] bi* ;
10 : aaaa-line. ( host ip -- )
11 [ write " has IPv6 address " write ] [ print ] bi* ;
13 : a-message. ( message -- )
14 [ message>query-name ] [ message>a-names ] bi
15 [ a-line. ] with each ;
17 : (aaaa-message.) ( message -- )
18 [ message>query-name ] [ message>aaaa-names ] bi
19 [ aaaa-line. ] with each ;
21 : aaaa-message. ( message -- )
22 [ a-message. ] [ (aaaa-message.) ] bi ;
24 : mx-line. ( host pair -- )
26 [ write " is an alias for " write ]
29 [ write " mail is handled by " write ]
30 [ first2 [ number>string write bl ] [ print ] bi* ] bi*
33 : mx-message. ( message -- )
34 [ message>query-name ] [ message>mxs ] bi
35 [ mx-line. ] with each ;
38 [ dns-A-query a-message. ]
39 [ dns-AAAA-query aaaa-message. ]
40 [ dns-MX-query mx-message. ] tri ;
42 GENERIC#: dns-host 1 ( servers domain -- )
44 M: sequence dns-host ( servers domain -- )
45 '[ _ host ] with-dns-servers ;
48 [ 1array ] dip dns-host ;
51 command-line get first host ;