nslookup: anzeigen einer Liste mit allen IP’s und Aliasse einer Domain

Last Updated on 2. Juni 2016 by Thomas J. Fehr

Um eine Liste mit allen IP’s und Aliasse einer Domain zu erhalten, kann mit Hilfe des Tools nslookup ein Zonen-Transfer simuliert werden. Dies setzt voraus, dass der zuständige DNS-Server die Option „Zone-Transfere“ eingeschaltet hat.

Aus dem Gesichtspunkt der Sicherheit, sollte diese Option bei einem DNS-Server nicht aktiviert sein. Mehr zu diesem Thema „Why is securing DNS zone transfer necessary?“

Um die Liste zu erstellen, braucht es folgende Schritte:

  1. nslookup im interaktiven Modus starten
  2. den Typ der Abfrage auf Nameserver setzen (ns)
  3. ermitteln des Domain-Servers
  4. Simulieren eines Zonen-Transfers

In den interaktiven Modus wechseln und den zuständige DNS-Server bestimmen:


>nslookup
>set type=ns
>2022.ch
>
Nicht autorisierende Antwort:
2022.ch nameserver = ns15.zoneedit.com
2022.ch nameserver = ns13.zoneedit.com

ns13.zoneedit.com       internet address = 66.223.97.114
ns15.zoneedit.com       internet address = 216.227.210.9

Auf den obigen Zeilen 6 und 7 sind die zuständigen DNS-Server abgebildet. Nun wird einer dieser DNS-Server unter nslookup definiert, als Server für die Anfragen, danach wird die Simulation des Zonen-Transfers gestartet:


>server ns15.zoneedit.com
>ls -d 2022.ch
>
[ns15.zoneedit.com]
 2022.ch.                       SOA    ns13.zoneedit.com soacontact.zoneedit.com
. (2011330253 300 300 300 300)
 2022.ch.                       NS     ns15.zoneedit.com
 2022.ch.                       NS     ns13.zoneedit.com
 2022.ch.                       A      80.238.129.157
 demo                           A      194.88.197.97
 www                            A      80.238.129.157
 2022.ch.                       SOA    ns13.zoneedit.com soacontact.zoneedit.com
. (2011330253 300 300 300 300)

Will man das Resultat direkt in eine Textdatei speichern, kann der Befehl auch folgendermassen eingegeben werden:


>ls -d 2022.ch > DateiZumSpeichern.txt

Der Output kann jetzt in der Datei „DateiZumSpeichern.txt“ angeschaut werden.

SQL Update: Datensatz ergänzen mit einem Wert aus einer anderen Tabelle

Last Updated on 2. Juni 2016 by Thomas J. Fehr

Aufbau der Tabellen
Aufbau der Tabellen
In einer Datenbank sind 2 Tabellen vorhanden: Account und AccountOld. In der Tabelle Account wird mit einer neuen Struktur gearbeitet, die von der Tabelle AccountOld abweicht. In der alten Tabelle ist die Gruppenzugehörigkeit gespeichert, welche jetzt doch noch übernommen werden soll.

Inhalt der Tabelle Account
Inhalt der Tabelle AccountOld

Um nun den Wert der Gruppenzugehörigkeit aus der Tabelle AccountOld zu übernehmen, haben wir folgende Möglichkeiten für die verschiedenen Datenbanksysteme:

MS SQL-Server
Beim Microsoft SQL-Server können wir dies auf 2 verschiedene Arten erledigen. Mit Hilfe einer Unterabfrage (Sub-Select) oder mit einem INNER-JOIN. Aus meiner Sicht ist jedoch die Variante mit dem INNER-JOIN zu bevorzugen.

Mit einem Sub-Select:

UPDATE Account SET Account.GroupID = (SELECT AccountOld.GroupID 
FROM AccountOLD WHERE Account.Name = AccountOld.Name)

Mit einem INNER JOIN:

UPDATE ACCOUNT SET Account.GroupID = AccountOld.GroupID 
FROM Account INNER JOIN AccountOLD ON Account.Name = AccountOld.Name

SQLite
Bei der SQLite DB funktioniert es nur mit Hilfe eines Sub-Select, da in einem Update-Statement kein FROM oder INNER-JOIN erlaubt ist.

Mit einem Sub-Select:

UPDATE Account SET GroupID = (SELECT AccountOld.GroupID 
FROM AccountOLD WHERE Account.Name = AccountOld.Name)

Resultat des Update-Befehl

Die Tabelle Account nach dem Update-Befehl