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 -- )
25 [ write " mail is handled by " write ]
26 [ first2 [ number>string write bl ] [ print ] bi* ] bi* ;
28 : mx-message. ( message -- )
29 [ message>query-name ] [ message>mxs ] bi
30 [ mx-line. ] with each ;
33 [ dns-A-query a-message. ]
34 [ dns-AAAA-query aaaa-message. ]
35 [ dns-MX-query mx-message. ] tri ;
37 GENERIC# dns-host 1 ( servers domain -- )
39 M: sequence dns-host ( servers domain -- )
40 '[ _ host ] with-dns-servers ;
43 [ 1array ] dip dns-host ;
46 command-line get first host ;