很久没分享技术了 现在来一波。取本机dns缓存。绝对原创
来自未公开的API 文档信息很少
功能: 取出本机访问的所有域名-可用于防破技术-或检测
- .版本 2
- .子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
- .局部变量 ws, 文本型, , "0"
- 输出调试文本 (“By:LingMax提示 请查看[变量表] - 找到域名:”, 取出本机访问的域名 (ws))
- 暂停 () ' 请查看变量表 ws变量By:LingMax
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 取出本机访问的域名, 整数型, 公开, by:LingMax 原理是取出本机dns缓存 如同cmd的ipconfig/displaydns 命令
- .参数 域名数组, 文本型, 参考 可空 数组, 存放域名数组
- .局部变量 i
- .局部变量 zz, 字节集
- .如果真 (DnsGetCacheDataTable1 (i) ≠ 0)
- .判断循环首 (i ≠ 0)
- zz = 指针到字节集 (i, 36)
- i = 取字节集数据 (zz, #整数型, 1)
- 加入成员 (域名数组, 编码_Unicode到Ansi_对象 (指针到字节集 (取字节集数据 (zz, #整数型, 5), 255)))
- .判断循环尾 ()
- .如果真结束
- 返回 (取数组成员数 (域名数组))
- .子程序 编码_Unicode到Ansi_对象, 文本型, 公开, 带BOM头信息编码转换。
- .参数 欲转换的文本, 字节集
- .局部变量 Dx, 对象
- .局部变量 Text, 文本型
- .局部变量 btx, 变体型
- .局部变量 type, 文本型
- btx.赋值 (欲转换的文本, )
- .如果真 (Dx.创建 (“Adodb.Stream”, ) = 假)
- 返回 (“”)
- .如果真结束
- Dx.写属性 (“Type”, 1)
- Dx.写属性 (“Mode”, 3)
- Dx.方法 (“Open”, )
- Dx.方法 (“Write”, btx)
- Dx.写属性 (“Position”, 0)
- Dx.写属性 (“Type”, 2)
- Dx.写属性 (“Charset”, “unicode”)
- Text = Dx.文本方法 (“ReadText”, )
- Dx.方法 (“Close”, )
- 返回 (Text)
- .版本 2
- .DLL命令 DnsGetCacheDataTable1, 整数型, "Dnsapi.dll", "DnsGetCacheDataTable", 公开, 枚举获取所有dns缓存
- .参数 pEntry, 整数型, 传址
复制代码
|