Einführung

Die Online-Enzyklopädie Wikipedia kann über DNS abgefragt werden. Toll daran ist, dass man somit jederzeit die Definition von einem Begriff aus der Shell heraus per DNS abfragen kann.

Technik

Der DNS-Server wp.dg.cx stellt über TXT-Ressource-Records den ersten Absatz von den englischen Wikipedia-Artikeln zur Verfügung. Der DNS-Server kann mit nslookup oder dig abgefragt werden.

Abfrage

Ich möchte die Definition von Foo wissen. Der DNS-Query sieht folgendermassen aus:

e $ ; ; ; ; ; ; ; ; ; f a ( p t o t h ; ; a ; ; ; ; m ; ; ; ; ; ; f ; o l a r e f h t ; ; . ; ; ; ; a d o o o l o r e t r n i T g G f Q o A . n s g m u p A A o Q S W M u g r l o l U . N w g o r s n p : U D o u E H S e u o t > a E w S p a k u / T D t e R E G l f n b H g S p W . w r m a n r / H I - r V N @ o c D a a E s T . E d i e m r o p a O T s y E : S d o a i l n A : I d R g t f i e w o . R I e R I i . t G s D O g . h e n n s v I O r t : M Z s w e o w E q N . S c r g u e u T N v i o E c p d 9 p e R r c E x f r s v Y A e m 1 n o . , . t r < S x C . o e o e a w L r e 0 r d 7 i : < r E . T o d r d l f : S s : . F r d g r . o - d C I , u F E S . 0 e c i . e 2 n T O t c h e t o C E n 5 . b v a c t - s o r I N b o o e s h o T C e 0 d : x r P : p a O : a m a , e b I T t m . 1 : ~ y 3 c ; N r a p v a O I . s 1 4 T i + o : , s u i t u r N O e 0 6 X n c d Q t l y n " : N c # 2 7 T g m e U a a e y p k : 5 1 0 d : E n r i n 3 : i R d m - i c o ( 1 n Q Y 8 e r n a w 7 7 7 7 7 7 7 7 7 7 7 7 7 7 1 1 t U : 6 b t e l n 8 8 8 8 8 8 8 8 8 8 8 8 8 9 0 : T x E 4 a a l c l 7 7 7 7 7 7 7 7 7 7 7 7 7 0 . 0 C t R 1 0 z s a o y v 4 4 4 4 4 4 4 4 4 4 4 4 4 0 0 4 P Y , 0 , y t m a 1 1 1 1 1 1 1 1 1 1 1 1 1 4 . f , n e p w l 0 2 m o A i t d u h u . 0 o o s N s a t i e 1 1 d . t S I I c d e l s I I I I I I I I I I I I I I 0 1 e w a W N N a t o r e N N N N N N N N N N N N N N ) . p t E i c a . u R c c u s d r d s : o m c e e g : m v e i s . 1 m a n e c u c N , o r t n r n x O T T n i a c i d N N N N N N N N N N N N N A E A X X a t e b e S S S S S S S S S S S S S R U T T p b i i r R T l l o t n s O H a e n o g t R O c ) . o , R e t a o I h u T a d i T " o s h k s , g f h e k l j c a m i b d 1 d Y T l e e e c . . . . . . . . . . . . . 9 : : h d d s e b r r r r r r r r r r r r r 8 e e e t n u o o o o o o o o o o o o o . 7 1 r i h a t o o o o o o o o o o o o o 4 5 3 t n f e r . t t t t t t t t t t t t t 1 6 , e n o i . - - - - - - - - - - - - - . 0 r a c u p o . s s s s s s s s s s s s s 0 A m m o r l e e e e e e e e e e e e e . D e m " w r r r r r r r r r r r r r 4 D f p h v v v v v v v v v v v v v I o u " e e e e e e e e e e e e e e T o t a r r r r r r r r r r r r r r I b e c e s s s s s s s s s s s s s O a r e . . . . . . . . . . . . . N r n n n n n n n n n n n n n A , e e e e e e e e e e e e e L t t t t t t t t t t t t t : . . . . . . . . . . . . . 1

In der Answer-Section steht die Erklärung von Foo.

Darstellung

Um nur die nötigen Informationen von dig zu erhalten, verwendet man die Option +short und +ignore:

e $ " p u T p w h m T l s h l h t a d h a e e " e t n i e c d s r p u g e e " e : e t h i a / l + e o n f c t / @ i r l o e h a d g m d c u e . i n e o r o v s o f r m f p u c r o p t u / o e o n u e u r w r b a t r n p : d + a m e m k o F i s r e r s n s o a h , o e o : o ( p a w b ~ r a a r r n o a t l l o e f r o s g v " f n o r u a t ` o g a s l h o r m e u e . w e m d e w i f i s u p t e n h , n . h r g e k d r a t n g f e o v y o . o d r i p w c o l i n x , t c y c o o a v T b m i l a X a a p n l l T r s u y u , t c e a e o w s a r m h n m - p i a d e r u l r t e t e e b a l e a s a r d u z y t e n , n e s s d t d c c e i a i r r s c d e i s t o n b t a i c c i o c u e n o c m g d o v e t , m a n o a m r t b o i a t s u n a t a c t b i k e . l o e n . e n a . ) . t r h i e o

So ist die Ausgabe angenehmer zu lesen.

Automatisieren

Ich habe mir folgende Funkton in die Datei ~/.bashrc geschrieben, damit ich Wikipedia schnell aus der Konsole heraus abfragen kann:

wiki() {
  if [ -n "$1" ]
  then
    dig +ignore +short $1.wp.dg.cx TXT
  else
    echo Bitte einen Begriff angeben.
  fi
}

Wenn man eine neue Bash startet, wird diese Funktion geladen und sie kann verwendet werden:

e $ " p u T p w h m T l s h l h t a w h a e e " e t n i e c d s r p u k e e " e : e i t h i a / l e o n f c t / @ f r l o e h a d o m d c u e . i o e o r o v s f r m f p u c o p t u / o o n u e u r w r b a t r n p : d a m e m k o F i r e r s n s o a , o e o : ( p a w b ~ a a r r n o a l l o e f r o s g v " n o r u a t g a s l h r m e u e w e m d e i f i s u t e n h , n h r g e k r a t n f e o v y o o d r i p w o l i n , t c y c o o a v b m i l a a a p n l l r s u y u , t c e a e o w s a r m h n m - p i a d e r u l r t e t e e b a l e a s a r d u z y t e n , n e s s d t d c c e i a i r r s c d e i s t o n b t a i c c i o c u e n o c m g d o v e t , m a n o a m r t b o i a t s u n a t a c t b i k e . l o e n . e n a . ) . t r h i e o

Das ist doch praktisch!