11
votes

DNS de requête utilisant des serveurs DNS spécifiques dans .NET

à partir d'une application .NET, je dois interroger un serveur DNS spécifique pour résoudre un nom de domaine (le serveur DNS n'est pas défini dans la configuration du réseau Windows).

Je sais que cela n'est pas possible à l'aide de classes standard .NET Framework ( Voir cette autre question ). Ma question est de savoir ce que mes options sont. Il y a une bibliothèque open source sur CodePlex ( DNDNS ) qui fait cela, mais il n'a pas été mis à jour dans un Long Time, et ma demande est essentielle de la mission, la fiabilité est extrêmement importante.

Toute suggestion?


1 commentaires

Pour être juste, ce n'est pas comme si le protocole DNS a changé beaucoup non plus.


6 Réponses :


1
votes

Je pense que la meilleure option est d'étudier le protocole DNS (qui est assez facile) et de la mettre en œuvre vous-même à l'aide de sockets UDP.

DNS est vraiment un protocole facile à comprendre et à mettre en œuvre.

De plus, vous pouvez utiliser le code source de DNDNS pour voir les captures dans le programme / protocole


0 commentaires

5
votes

Vous pouvez également consulter OPENDNS.NET et vérifiez s'il correspond à votre application < P> Voici un exemple de code pour vous aider à démarrer: xxx


0 commentaires

1
votes

Vous pouvez le faire avec «Client DNS de JH pour le logiciel pour .NET». Voir le deuxième échantillon de code à http://www.simpledns.com/dns-client- lib.aspx


0 commentaires

1
votes

J'ai eu la même tâche et ma solution pour exécuter une commande dans OS avec le processus et obtenir la sortie (elle fonctionne pour Windows) /vb.net/ est la suivante:

Sub Main()
    Dim oProcess As New Process
    Dim oStartInfo As New ProcessStartInfo("nslookup", " [name] [dns server's ip]")
    oStartInfo.UseShellExecute = False
    oStartInfo.RedirectStandardOutput = True
    oProcess.StartInfo = oStartInfo
    oProcess.Start()

    Dim sOutput As String
    Using oStreamReader As System.IO.StreamReader = oProcess.StandardOutput
        sOutput = oStreamReader.ReadToEnd()
    End Using
    Console.WriteLine(sOutput)
End Sub


0 commentaires

0
votes

dnsjava est un projet actif qui est une implémentation open source de DNS en Java et est assez riche en Conditions de définition définie. J'ai pu utiliser Dnsjava en utilisant ikvmc pour compiler pour la première fois le pot à une DLL:

C: \ Temp> IKVMC -TARGET: Bibliothèque DNSJAVA-2.1.5.JAR P>

Compilateur IKVM.net Version 7.2.4630.5 Copyright (c) 2002-2012 Jeroen Frijters p>

http://www.ikvm.net/ p>

Remarque IKVMC0002: fichier de sortie est "Dnsjava-2.1.5.dll" p> BlockQuote>

Veuillez noter que vous devrez référencer ikvm.openjdk.core ainsi que la DLL ci-dessus pour le code ci-dessous pour travailler. Sample ci-dessous requête pour un enregistrement sur un serveur de nom spécifique: P> xxx pré>

sortie p>

74.125.236.164
74.125.236.165
74.125.236.162
74.125.236.174
74.125.236.160
74.125.236.168
74.125.236.169
74.125.236.161
74.125.236.166
74.125.236.167
74.125.236.163


0 commentaires

3
votes

Bien que ce soit une très vieille question. Il existe encore de nouvelles bibliothèques développées pour le faire car le framework .NET n'a toujours pas de support pour cela;)

regarder http://dnsclient.michaaco.net . Il est facile à utiliser, performant et Open Source !

Et cela fonctionne également sur la plate-forme de Core Core .NET!


0 commentaires