精华内容
下载资源
问答
  • dat

    2017-05-29 21:11:32
    不标准的文件格式,具体内容针对特定的数据
    展开全文
  • 最新手机号段归属地数据库 高性能dat解析

    万次阅读 多人点赞 2019-05-11 02:11:50
    最新手机号段数据库 2019-12-01 441831条记录 号码归属地...名称:手机号码归属地查询 dat高效率查询 内存优化版 压缩:原版txt为22M,生成这种dat结构为2.66M 性能:每秒解析300万+号段或者号码,简洁高效 环境:CPU...

     

    最新 手机号段数据库  2020-08-15 458461条记录  号码归属地数据库  全面  准确  规范 
    字段包括 省份 城市 运营商 邮编 区号 等信息,对于数据分析、号码归属地查询等非常有帮助



    名称:手机号码归属地查询 dat高效率查询  内存优化版
    压缩:原版txt为22M,生成这种dat结构为2.66M 
    性能:每秒解析300万+号段或者号码,简洁高效 
    环境:CPU i7-7700K +内存16GB

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Text;
    using System.Threading;
    
    namespace qqzeng_phone_dat
    {
    
        public class PhoneSearchFast
        {
            private static readonly Lazy<PhoneSearchFast> lazy = new Lazy<PhoneSearchFast>(() => new PhoneSearchFast());
            public static PhoneSearchFast Instance { get { return lazy.Value; } }
            private PhoneSearchFast()
            {
                LoadDat();
                Watch();
            }
    
            private string datPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, @"qqzeng-phone.dat");
            private DateTime lastRead = DateTime.MinValue;
            private long[,] prefmap = new long[200, 2];//  000-199
    
    
            private long[,] phonemap;
    
            private byte[] data;
    
            private long[] phoneArr;
            private string[] addrArr;
            private string[] ispArr;
    
            /// <summary>
            /// 初始化二进制dat数据
            /// </summary>
            /// <param name="dataPath"></param>
            /// 
    
    
            private void LoadDat()
            {
                data = File.ReadAllBytes(datPath);
    
                long PrefSize = BytesToLong(data[0], data[1], data[2], data[3]);
                long RecordSize = BytesToLong(data[4], data[5], data[6], data[7]);
    
                long descLength = BytesToLong(data[8], data[9], data[10], data[11]);
                long ispLength = BytesToLong(data[12], data[13], data[14], data[15]);
    
                //内容数组
                int descOffset = (int)(16 + PrefSize * 9 + RecordSize * 7);
                string descString = Encoding.UTF8.GetString(data, descOffset, (int)descLength);
                addrArr = descString.Split('&');
    
                //运营商数组
                int ispOffset = (int)(16 + PrefSize * 9 + RecordSize * 7 + descLength);
                string ispString = Encoding.UTF8.GetString(data, ispOffset, (int)ispLength);
                ispArr = ispString.Split('&');
    
    
    
                //前缀区
                int m = 0;
                for (var k = 0; k < PrefSize; k++)
                {
                    int i = k * 9 + 16;
                    int n = data[i];
                    prefmap[n, 0] = BytesToLong(data[i + 1], data[i + 2], data[i + 3], data[i + 4]);
                    prefmap[n, 1] = BytesToLong(data[i + 5], data[i + 6], data[i + 7], data[i + 8]);
                    if (m < n)
                    {
                        for (; m < n; m++)
                        {
                            prefmap[m, 0] = 0; prefmap[m, 1] = 0;
                        }
                        m++;
                    }
                    else
                    {
                        m++;
                    }
                }
    
                //索引区
                phoneArr = new long[RecordSize];
                phonemap = new long[RecordSize, 2];
                for (int i = 0; i < RecordSize; i++)
                {
                    long p = 16 + PrefSize * 9 + (i * 7);
                    phoneArr[i] = BytesToLong(data[p], data[1 + p], data[2 + p], data[3 + p]);
                    phonemap[i, 0] = data[4 + p] + ((data[5 + p]) << 8);
                    phonemap[i, 1] = data[6 + p];
                }
    
    
    
            }
            private void Watch()
            {
                FileInfo fi = new FileInfo(datPath);
                FileSystemWatcher watcher = new FileSystemWatcher(fi.DirectoryName)
                {
                    IncludeSubdirectories = false,
                    NotifyFilter = NotifyFilters.LastWrite,
                    Filter = "qqzeng-phone.dat",
                };
    
                watcher.Changed += (s, e) =>
                {
    
                    var lastWriteTime = File.GetLastWriteTime(datPath);
    
                    if (lastWriteTime > lastRead)
                    {
                        //延时 解决 正由另一进程使用,因此该进程无法访问此文件
                        Thread.Sleep(1000);
    
                        LoadDat();
                        lastRead = lastWriteTime;
                    }
                };
                watcher.EnableRaisingEvents = true;
            }
    
    
    
    
            /// <summary>
            /// 号段查询
            /// </summary>
            /// <param name="phone">7位或者11位</param>
            /// <returns></returns>
            public string Query(string phone)
            {
                long pref;
                long val = PhoneToInt(phone, out pref);
                long low = prefmap[pref, 0], high = prefmap[pref, 1];
                if (high == 0)
                {
                    return "";
                }
                long cur = low == high ? low : BinarySearch(low, high, val);
                if (cur != -1)
                {
    
                    return addrArr[phonemap[cur, 0]] + "|" + ispArr[phonemap[cur, 1]];
                }
                else
                {
                    return "";
                }
    
    
    
    
    
    
            }
            /// <summary>
            /// 二分算法
            /// </summary>
            private int BinarySearch(long low, long high, long key)
            {
                if (low > high)
                    return -1;
                else
                {
                    long mid = (low + high) / 2;
                    long phoneNum = phoneArr[mid];
                    if (phoneNum == key)
                        return (int)mid;
                    else if (phoneNum > key)
                        return BinarySearch(low, mid - 1, key);
                    else
                        return BinarySearch(mid + 1, high, key);
                }
            }
    
    
    
            private long PhoneToInt(string phone, out long prefix)
            {
                //最高性能
                char ch;
                long currentValue = 0;
                long prefval = 0;
                unsafe
                {
                    fixed (char* name = phone)
                    {
                        for (int current = 0; current < 7; current++)
                        {
                            ch = name[current];
                            int digitValue = ch - '0';
                            currentValue = (currentValue * 10) + digitValue;
                            if (current == 2)
                            {
                                prefval = currentValue;
                            }
                        }
                    }
                    prefix = prefval;
                    return currentValue;
                }
    
    
                //prefix = Convert.ToUInt32(phone.Substring(0,3));
                //return Convert.ToUInt32(phone.Substring(0, 7)); ;
            }
    
    
    
            /// <summary>
            /// 字节转整形 小节序 
            /// </summary>     
            private uint BytesToLong(byte a, byte b, byte c, byte d)
            {
                return (uint)(a | (b << 8) | (c << 16) | (d << 24));
            }
    
    
    
        }
    
        /*
        (调用例子):    
        string result = PhoneSearchFast.Instance.Query("号段|号码");
       --> result="省份|城市|区号|邮编|行政区划代码|运营商"
        */
    }

     

    更新历史: 

    2020-08-15 458461条记录
    2020-08-01 458084条记录
    2020-07-15 458020条记录
    2020-07-01 457441条记录
    2020-06-01 454802条记录
    2020-05-01 450433条记录
    2020-04-01 450175条记录
    2020-03-01 447897条记录
    2020-01-01 442612条记录
    2019-12-01 441831条记录
    2019-11-01 439265条记录
    2019-09-01 438615条记录
    2019-08-01 437142条记录
    2019-07-01 436804条记录
    2019-06-01 430826条记录
    2019-05-01 429052条记录
    2019-04-01 424014条记录
    2019-03-01 423850条记录
    2019-02-01 423766条记录
    2019-01-01 421973条记录
    2018-12-01 415967条记录
    2018-11-01 415806条记录
    2018-10-01 415311条记录
    2018-09-01 413015条记录
    2018-08-01 411856条记录
    2018-07-01 410765条记录
    2018-06-01 405385条记录
    2018-05-01 387892条记录
    2018-03-01 382140条记录
    2018-02-01 381409条记录
    2018-01-01 381061条记录
    2017-12-01 380357条记录
    2017-11-01 369022条记录
    2017-10-01 368360条记录
    2017-08-01 366454条记录
    2017-07-01 363952条记录
    2017-06-01 362386条记录
    2017-05-01 359938条记录
    2017-04-01 359429条记录
    2017-03-01 358215条记录
    2017-02-01 358006条记录
    2017-01-01 357213条记录
    2016-12-01 354586条记录
    2016-11-01 352898条记录
    2016-10-15 352182条记录
    2016-09-15 352176条记录
    2016-08-15 352069条记录
    2016-07-15 344348条记录
    2016-06-15 343198条记录
    2016-05-15 335588条记录
    2016-04-15 335169条记录
    2016-03-25 334447条记录
    2016-03-01 331878条记录
    2016-02-01 329833条记录
    2016-01-01 327154条记录
    2015-12-01 326601条记录
    2015-11-01 326596条记录
    2015-10-01 324557条记录
    2015-09-01 321602条记录
    2015-08-01 320432条记录
    2015-07-01 320027条记录
    2015-06-01 318201条记录
    2015-05-01 318115条记录
    2015-04-01 317191条记录
    2015-03-01 312145条记录
    2015-02-01 311924条记录
    2015-01-01 310165条记录
    2014-12-01 309966条记录
    2014-11-01 309398条记录
    2014-10-01 307924条记录
    2014-09-01 306093条记录
    2014-08-01 301472条记录
    2014-07-01 303033条记录
    2014-06-01 300635条记录
    2014-05-01 299920条记录
    2014-04-01 296010条记录
    2014-03-01 289087条记录
    2014-02-01 288831条记录
    2014-01-01 288661条记录
    2013-12-01 287379条记录
    2013-11-01 286438条记录
    2013-10-01 286418条记录
    2013-09-01 284304条记录
    2013-08-01 282136条记录
    2013-07-01 281965条记录
    2013-06-03 281413条记录
    2013-05-03 281071条记录
    2013-04-01 279680条记录
    2013-03-01 276893条记录
    2013-02-01 275967条记录
    2013-01-01 274995条记录
    2012-12-01 274832条记录
    …………

     

     

    Excel vlookup  函数  xls 使用

     归属地公式:=(VLOOKUP(LEFT(B2,7),号段数据库!B:D,2,0)&VLOOKUP(LEFT(B2,7),号段数据库!B:D,3,0))

     运营商公式:=(VLOOKUP(LEFT(A2,3),isp!A:B,2,0))
     运营商公式:=(VLOOKUP(LEFT(B2,7),号段数据库!B:E,4,0))

     两个列合并:=CONCATENATE(B1&C1)

     

     

    开发参考 GitHub  https://github.com/zengzhan/qqzeng-ip

     

    展开全文
  • Quantum DAT 72 磁带机是您可以信赖的解决方案。基于受到全世界小型企业信任的经过同样检验的 DAT 科技,DAT 72 提供低廉的性能和安全的投资保护。 比以往的 DDS 磁带多出 80% 的容量 。
  • Spark统计电影评分数据:movies.dat,retings.dat,users.dat
  • dat处理文件

    2017-09-01 03:43:15
    dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 dat批处理 ...
  • DAT257项目 DAT257敏捷软件项目管理
  • mldonkey需要的nodes.dat以及contact.dat,放到相应位置之后,在MLDonkey命令输入界面运行 ov_load /路径/contact.dat kad_load /路径/nodes.dat 即可。
  • QMProxyAccelGameList.dat

    2019-09-30 03:12:23
    470biosQMProxyAccelGameList.dat
  • GeoIP.dat.gz GeoLiteCity.dat.gz,去官网下载了很久才搞到手,几乎是免费放出来供有需要的下载了,只要仅仅5分。
  • dat:// URL for Dat Installer

    2020-12-08 20:36:37
    ve installed Dat Installer from the APK, and it works to install MMMMM from Dat. But when Dat Installer is updated, I won't get the update, because I installed from an APK. <p>Dat Installer should...
  • <div><p>dat.GUIVR is overwriting the dat.GUI if it's declared first. We should check if window.dat exists, and if so, append to it</p><p>该提问来源于开源项目:dataarts/dat.guiVR</p></div>
  • wallet.dat文件打开解密工具,支持300多种文件打开解密
  • Mahout实践指南中的例子,有关推荐引擎的测试数据,包含movies.dat, ratings.dat, users.dat 和 README
  • GeoLiteCity.dat.gz和GeoIP.dat.gz ,好像官网无法下载了
  • dat-nodejs
  • 地址文件"addr.dat"、钱包文件“wallet.dat”默认保存在“%APPDATA%\BitCoin”目录中(你可以先按“WinKey+R”之后 输入“%APPDATA%\BitCoin”而后回车,就可以看到路径)。 默认情况下,一、Windows下的具体目录是...

    地址文件"addr.dat"、钱包文件“wallet.dat”默认保存在“%APPDATA%\BitCoin”目录中(你可以先按“WinKey+R”之后 输入“%APPDATA%\BitCoin”而后回车,就可以看到路径)。

    默认情况下,
    一、Windows下的具体目录是:

    C:\Documents and Settings\你的用户名\Application data\BitCoin (XP)
    C:\Users\你的用户名\Appdata\Roaming\BitCoin (Vista/7)


    二、Mac下,钱包文件保存目录为:
    /Library/Application Support/Bitcoin/


    三、Linux下,钱包文件保存目录为:
    /.bitcoin/

    展开全文
  • matlab提取dat文件的特定字段和数据-main.dat dat文件为abaqus计算结果文件。我想利用matlab提取出特定字段,特定点的位移数值。 首先我的mian.dat文件里面所要提取的位移数值内容为第一张图片,第二张和第三张...
  • <p>Dat should warn me if I try and use the same dat instance after closing it. Or even better: it should allow me to start, stop and restart without problem. <h3>Actual behavior <p>Dat segfaults <h3>...
  • GeoIP.dat.gz + GeoLiteCity.dat.gz 2020新版 官方网站下载太慢,花了一个小时才拖回来
  • dat密码文件

    2015-08-05 18:21:49
    dat密码文件
  • 在代码中使用dat.GUI的最简单方法是使用build/dat.gui.min.js的内置源代码。 这些内置JavaScript文件捆绑了运行dat.GUI所需的所有依赖项。 在head标签中,包含以下代码: < script type =" text/javascript " ...
  • GeoLiteCity.dat

    2018-08-26 20:53:59
    GeoLiteCity.dat离线文件,可以定位到区域,包括国家、城市、区域和经纬度信息,以及两点之间的距离。用Python调用时可以使用
  • DAT跟踪

    2020-04-18 23:14:59
    介绍 https://blog.csdn.net/discoverer100/article/details/87701802 https://github.com/shipubupt/NIPS2018/blob/master/DAT/tracking/run_tracker.py
    展开全文
  • 近日小编收到网友信息,问dat文件怎么打开微信dat文件,用什么软件打开登录上了百度热搜,受到广大网友们的关注,那么关于目前的dat文件怎么打开微信dat文件用什么软件打开相信小伙伴们都是想要了解到最新的信息吧,...
  • PYTHON解析微信dat文件

    2020-12-21 14:26:58
    今天想查看某个微信聊天记录的图片内容,查看文件记录全部是dat文件,因此,开始了一顿百度+操作! 先贴代码: import os def imageDecode(dat_dir,dat_file_name): dat_read = open(dat_dir, "rb") if not os....
  • dat.GUI A lightweight graphical user interface for changing variables in JavaScript. Get started with dat.GUI by reading the API documentation. Packaged Builds The easiest way to use dat.GUI in your ...
  • Dat文件一般是打不开的一些VCD视频文件是Dat格式的,可以用播放器例如暴风影音打开另外Dat文件用的最多的是配置保存文件,例如金山网镖的IP规则保存后就是Dat文件的不能直接打开,只能在IP规则导入的时候选择这个Dat...
  • 支持system.new.dat与system.new.dat.br互相转换功能,同样也支持vendor.new.dat与vendor.new.dat.br互相转换,操作十分简单,只需一键就能转换。也支持img与dat一键互换,安卓全版本适配。
  • vb读取dat文件内容

    2020-12-01 08:24:30
    可以随意读取dat文件内容,也可指定行进行读取dat内容,也可以往里dat文件中写信息,程序比较简单,仅供大家参考!欢迎大家进行指点!
  • qqwry.dat, 纯真IP地址数据库镜像,mirror of qqwry.dat.zip

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 43,297
精华内容 17,318
关键字:

Dat