Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: AnnoZone Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

annospieler976

Vollmatrose

  • »annospieler976« ist der Autor dieses Themas

Beiträge: 96

Registrierungsdatum: 28. Dezember 2007

  • Nachricht senden

1

Dienstag, 29. Januar 2008, 20:01

DNS, Namensauflösung

Hallo,
Ich schreibe im Moment an einem Programm, was eine Internetadresse in eine IP-adresse umwandeln soll.
Da man in Java und C nicht den Namensserver angeben kann, ich das aber brauche, da z.b. OpenDns ca. die Hälfte der Seiten sperrt, muss ich selber eine Anfrage an einen Namnesserver schicken.

Ich versichere euch dass ich schon gesucht habe, leider sind aber die meisten Seiten auf Englisch und nicht leicht zu verstehen (vom Englischen her), also frage ich mal hier ob jemand weiß wie so eine Anfrage aussieht.

Was ich schon weiß ist, dass sie in Bytes geschickt wird und so aufgebaut ist:
Name, Type, Class, TTL (Time to life) , RDLength, RData.

Was jedoch das genau bedeuted weiß ich nicht.

Edit: Ich weiß vorallem nicht was "Type" und "Class" sind. Und weiß jemand wie ich WireShark zum laufen kriege? Es empfängt bei mir einfach nichts.


Vielen Dank im Voraus,
Annospieler

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »annospieler976« (29. Januar 2008, 20:05)


Sir Henry

Pensionierter Oberbordschrauber

Beiträge: 1 710

Registrierungsdatum: 24. Mai 2003

  • Nachricht senden

2

Dienstag, 29. Januar 2008, 20:42

Ich habe nicht verstanden, warum du nicht gethostbyname() oder getaddrinfo() verwenden kannst, bitte nochmal deutlich für Begriffsstutzige. :konfus:
  Cheers, Sir Henry
Schon im Anno-Pool vorbeigeschaut?

annospieler976

Vollmatrose

  • »annospieler976« ist der Autor dieses Themas

Beiträge: 96

Registrierungsdatum: 28. Dezember 2007

  • Nachricht senden

3

Dienstag, 29. Januar 2008, 21:23

Danke erstmal für die schnelle Antwort!

Ich kann getHostbyName nicht verwenden, weil ich dort nicht festlegen kann welcher Namenserver verwendet wird, das Programm, aber, soll 64.81.45.2 von SpeakEasy benutzen.

Thanks,
Annospieler

Sir Henry

Pensionierter Oberbordschrauber

Beiträge: 1 710

Registrierungsdatum: 24. Mai 2003

  • Nachricht senden

4

Dienstag, 29. Januar 2008, 21:59

Das wird schwierig...

Welches Betriebssystem? Java oder C/++ ?

Gib doch einfach mal einen Link auf die Funktion, die du verwenden willst.
  Cheers, Sir Henry
Schon im Anno-Pool vorbeigeschaut?

annospieler976

Vollmatrose

  • »annospieler976« ist der Autor dieses Themas

Beiträge: 96

Registrierungsdatum: 28. Dezember 2007

  • Nachricht senden

5

Mittwoch, 30. Januar 2008, 16:45

Ich verwende Java, aber wenn jemand eine Lösung für C hat bneutze ich das JNI(Java Native Interface), mit dem C-code in Java verwendet werden kann.

Es gibt in Java wie in C/C++ keine Funktion dafür, nur Perl hat das, das kann ich aber nicht ;).

Ich will meine eigene Funktion schreiben, die eine Anfrage an den Server sendet^^.

Leider sind DNS-anfragen aber nicht simple Strings (wie zum ich z.b. zu einer Seite "GET" senden würde um den Quellcode zu bekommen), sondern byte[]s, was ja auch nicht sonderlich schwer wäre, wenn ich nur einen einfachen String senden würde, aber das DNS-protkoll ist ein wenig komplizierter.

Im Grunde soll meine Methode eine Verbindung herstellen (TCP-Socket, kein UDP), dann eine Anfrage schicken und natürlich auf die Antwort warten.

Aber ich denke das ist schon machbar....

Edit: Ach ja, unabhängiges Betriebssystem...

Annospieler

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »annospieler976« (30. Januar 2008, 16:46)


Sir Henry

Pensionierter Oberbordschrauber

Beiträge: 1 710

Registrierungsdatum: 24. Mai 2003

  • Nachricht senden

6

Mittwoch, 30. Januar 2008, 18:19

Ich denke, mit dieser Aufgabe hast du dich für den Anfang etwas übernommen.

Es wäre tatsächlich einfacher, einen Perl 4-Zeiler mit Net::DNS::Resolver zu schreiben, als alles selbst zu programmieren.

Ein fertiges Skript gibt es auch mit Sourcecode zum Runterladen hier.

Wenn es Perl nicht sein darf, muss ich passen, dann musst du dich selbst durchbeißen.
  Cheers, Sir Henry
Schon im Anno-Pool vorbeigeschaut?

annospieler976

Vollmatrose

  • »annospieler976« ist der Autor dieses Themas

Beiträge: 96

Registrierungsdatum: 28. Dezember 2007

  • Nachricht senden

7

Mittwoch, 30. Januar 2008, 18:32

Hmm, vielleicht weiß ja sonst noch wer was?

@Sir Henry: Was heißt für den Anfang, ich in Java fast schon alle Kapitel durch, inklusive Netzwerk, Verschlüßelung(Meine AES Klasse steht und läuft jetzt)...

Mit C++ hab ich grade erst angefangen, Java mach ich schon ca. 2 Jahre.


Wenn mir hier keiner helfen kann muss ich halt meinen Vater fragen, aber das dauert halt, bis der mal wieder Zeit hat...

Edit: Habe hiereine recht schöne Seite gefunden.

Trotzdem Danke,
Annospieler

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »annospieler976« (30. Januar 2008, 18:34)


Sir Henry

Pensionierter Oberbordschrauber

Beiträge: 1 710

Registrierungsdatum: 24. Mai 2003

  • Nachricht senden

8

Mittwoch, 30. Januar 2008, 19:01

Na ja, das ist der Standard, da steht eigentlich alles drin, was du gefragt hast.

Du musst natürlich wissen, was ein DNS-Recordtyp ist, sonst fehlen die Grundlagen.

Fang einfach mit dem Typ 'A' an, das ist die "normale" Auflösung Hostname -> IP-Adresse.
  Cheers, Sir Henry
Schon im Anno-Pool vorbeigeschaut?

annospieler976

Vollmatrose

  • »annospieler976« ist der Autor dieses Themas

Beiträge: 96

Registrierungsdatum: 28. Dezember 2007

  • Nachricht senden

9

Mittwoch, 30. Januar 2008, 19:10

A für (wie du so schön sagst) "normale" Auflösung
MX für Mail Exchange
...
Beschreibungen hier.
...
Das interessante ist wohl eher die RData.

Annospieler

Sir Henry

Pensionierter Oberbordschrauber

Beiträge: 1 710

Registrierungsdatum: 24. Mai 2003

  • Nachricht senden

10

Mittwoch, 30. Januar 2008, 20:37

Oben schriebst du, du wüsstest nicht, was Type und Class bedeutet, jetzt willst du es mir erzählen... :konfus:

In RDATA kommt beim Typ A der Hostname rein. Aber das wirst du ja jetzt sicher schon gewusst haben... :D

Korrektur: Bei der A-Query ist das RDATA-Feld leer, bei der Antwort steht da die IP-Adresse drin.

Korrektur: Bei der Anfrage gibt es gar kein RDATA. In der Antwort steht in RDATA die IP-Adresse drin.
  Cheers, Sir Henry
Schon im Anno-Pool vorbeigeschaut?

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Sir Henry« (30. Januar 2008, 20:47)


annospieler976

Vollmatrose

  • »annospieler976« ist der Autor dieses Themas

Beiträge: 96

Registrierungsdatum: 28. Dezember 2007

  • Nachricht senden

11

Donnerstag, 31. Januar 2008, 20:30

tja... ich weiß nicht so viel, ich weiß aber wie ichs einfacher mache... Ich nehm einfach eine schon geschrieben (opensource) java class.

Vielleicht hätte ich erstmal danach schauen sollen :aua: :D.

Danke für deine Hilfe (und sorry für meine Dummheit...)

Annospieler

(Weg mit diesem sinnlosen Thread!)