Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
601 views
in Technique[技术] by (71.8m points)

c# - How to perform "nslookup host server"

My C# service needs to periodically poll nslookup host server. Currently it spawns a Process that executes batch script. Due to performance reason I'm considering to do this check using some API. But the problem is, that using, for example, System.Net.Dns.GetHostAddresses I can only emulate nslookup host check, but not nslookup host server (without seconds param).

I've looked at bunch of similar SO questions, but none of them seem to solve my issue.

Are there any way to perform nslookup host server in C# without using some heavy third-patry library?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

The problem was solved!

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

See "Great Example here" section

[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);

...

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...