DDNS动态域名生效问题(TXT域名解决)

DDNS动态域名生效问题(TXT域名解决)

随着带宽普及·带宽提速·家庭宽带很多都光纤入户·带宽甩云主机厂商几条街·但是动态IP问题始终困扰我们·DDNS很多都收费了·就算付费也做不到秒更新·24小时才能全网更新···

近日研究了txt域名...(长度512)

好处秒更新·立即修改·立即生效...

哈哈哈···聪明的小朋友该知道怎么做了吧...

using System;
using System.Runtime.InteropServices;

namespace QueryDoMain
{
    class Program
    {
        [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);
        public enum QueryOptions
        {
            DNS_QUERY_STANDARD = 0x0,
            DNS_QUERY_BYPASS_CACHE = 0x8
        }
        public enum QueryTypes
        {
            DNS_TYPE_A = 0x1,
            DNS_TYPE_CNAME = 0x5,
            DNS_TYPE_MX = 0xF,
            DNS_TYPE_TEXT = 0x10,
            DNS_TYPE_TXT = DNS_TYPE_TEXT
        }
        [StructLayout(LayoutKind.Sequential)]
        private struct Record
        {
            public IntPtr pNext;
            public string pName;
            public short wType;
            public short wDataLength;
            public int flags;
            public int dwTtl;
            public int dwReserved;
            public int dwStringCount;
            public IntPtr pString;
        }
        static string TXTDomainQuery(string domain)
        {
            IntPtr ptr1 = IntPtr.Zero;
            string txt = string.Empty;
            if (Environment.OSVersion.Platform == PlatformID.Win32NT && DnsQuery(ref domain, QueryTypes.DNS_TYPE_TEXT, QueryOptions.DNS_QUERY_STANDARD, 0, ref ptr1, 0) == 0)
            {
                Record rec; IntPtr ptr2;
                for (ptr2 = ptr1; !ptr2.Equals(IntPtr.Zero); ptr2 = rec.pNext)
                {
                    rec = (Record)Marshal.PtrToStructure(ptr2, typeof(Record));
                    txt = Marshal.PtrToStringAuto(rec.pString);
                }
                DnsRecordListFree(ptr1, 0);
                return txt;
            }
            else
            {
                return txt;
            }
        }
        static void Main(string[] args)
        {
            string domain = "t1.0x**.cn";
            string ret = TXTDomainQuery(domain);
            Console.WriteLine(ret);
            Console.ReadKey();
        }
    }
}

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值