c# api nslookup

c# - Cómo realizar "nslookup host server"



api (3)

Mi servicio C# necesita sondear periódicamente el nslookup host server . Actualmente genera un Process que ejecuta un script por lotes. Debido a la razón de rendimiento, estoy considerando hacer esta comprobación usando alguna API . Pero el problema es que, usando, por ejemplo, System.Net.Dns.GetHostAddresses , solo puedo emular la comprobación del nslookup host , pero no el nslookup host server (sin el parámetro param).

He visto muchas preguntas similares, pero ninguna de ellas parece resolver mi problema.

¿Hay alguna forma de realizar el nslookup host server en C# sin utilizar una biblioteca pesada de terceros?


¡El problema fue resuelto!

http://msdn.microsoft.com/en-us/library/ms682016(VS.85).aspx

Vea la sección " Gran ejemplo aquí "

[DllImport("dnsapi", EntryPoint="DnsQuery_W", CharSet=CharSet.Unicode, SetLastError=true, ExactSpelling=true)] private static extern int DnsQuery([MarshalAs(UnmanagedType.VBByRefStr)]ref string pszName, QueryTypes wType, QueryOptions options, int aipServers, ref IntPtr ppQueryResults, int pReserved); [DllImport("dnsapi", CharSet=CharSet.Auto, SetLastError=true)] private static extern void DnsRecordListFree(IntPtr pRecordList, int FreeType); ...


Miré esto hace un tiempo. No es posible en las bibliotecas de clases estándar, por lo que tendrá que usar un componente externo para hacerlo correctamente.

Hay una cantidad de opciones gratuitas y de pago disponibles para usted. Mi implementación se basó en una publicación en CodeProject , que funcionó bastante bien. DNS Client Library para .NET (también mencionado por kprobst) fue lanzado después de que terminé el mío, o lo hubiera usado inicialmente.


No estoy seguro de cómo hacer esto usando el marco directamente porque nunca he necesitado usar un servidor DNS diferente al especificado en la configuración de la máquina local. Pero es posible que desee probar esta biblioteca. Nunca lo he usado, pero hasta donde sé, le permitirá especificar un servidor DNS para usar al resolver el nombre de host que pasa.