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:
emanuel@discordia:~
$ dig foo.wp.dg.cx TXT
;; Truncated, retrying in TCP mode.
; <<>> DiG 9.7.2-P3 <<>> txt foo.wp.dg.cx
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 7560
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 1
;; QUESTION SECTION:
;foo.wp.dg.cx. IN TXT
;; ANSWER SECTION:
foo.wp.dg.cx. 86400 IN TXT "The term foobar,
along with foo, bar, and baz, is a common placeholder name
(also referred to as a metasyntactic variable) used in computer
programming or computer-related documentation. These four
terms are used heavily in computer science to take the pl" "ace
of unknown values, typically while describing a scenario where
the purpose of the unknown values are understood, but...
http://a.vu/w:Foobar"
;; AUTHORITY SECTION:
. 78741 IN NS g.root-servers.net.
. 78741 IN NS f.root-servers.net.
. 78741 IN NS h.root-servers.net.
. 78741 IN NS e.root-servers.net.
. 78741 IN NS k.root-servers.net.
. 78741 IN NS l.root-servers.net.
. 78741 IN NS j.root-servers.net.
. 78741 IN NS c.root-servers.net.
. 78741 IN NS a.root-servers.net.
. 78741 IN NS m.root-servers.net.
. 78741 IN NS i.root-servers.net.
. 78741 IN NS b.root-servers.net.
. 78741 IN NS d.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 79004 IN A 198.41.0.4
;; Query time: 5 msec
;; SERVER: 10.0.0.10#53(10.0.0.10)
;; WHEN: Mon Feb 14 21:11:04 2011
;; MSG SIZE rcvd: 670
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
:
emanuel@discordia:~
$ dig +ignore +short foo.wp.dg.cx TXT
"The term foobar, along with foo, bar, and baz, is a common
placeholder name (also referred to as a metasyntactic variable)
used in computer programming or computer-related documentation.
These four terms are used heavily in computer science to take the
pl" "ace of unknown values, typically while describing a scenario
where the purpose of the unknown values are understood, but...
http://a.vu/w:Foobar"`
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:
emanuel@discordia:~
$ wiki foo
"The term foobar, along with foo, bar, and baz, is a common
placeholder name (also referred to as a metasyntactic variable)
used in computer programming or computer-related documentation.
These four terms are used heavily in computer science to take the
pl" "ace of unknown values, typically while describing a scenario
where the purpose of the unknown values are understood, but...
http://a.vu/w:Foobar"
Das ist doch praktisch!