作者: 乔克斯
查看: 2783|回复: 4

主题标签Tag

打印 上一主题 下一主题

[源码] 【手机信息查询】根据手机号查询归属地,卡类型等信息

[复制链接]
跳转到指定楼层
楼主
查看: 2783|回复: 4
根据手机号查询归属地,卡类型等信息
   此程序是包括有离线本地查询和联网查询,离线查询就是根据号码中的号码段到本地数据库进行查询分析,网络查询比较准确,是调用别人的接口,在非必要情况下还是用自己的离线比较好。

效果图:


窗体代码:
[C#] 纯文本查看 复制代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SQLite;
using System.Text.RegularExpressions;
using System.IO;

namespace 手机号码查询
{
    public partial class Form1 : Form
    {
        public Form1() {
            InitializeComponent();
        }

        string phoneNum = "";//存储完整手机号码
        string tel = "";//存储手机号码的前缀

        private void tsbtnLocal_Click(object sender, EventArgs e) {
            if (!File.Exists("data"))//检查数据库是否存在
            {
                MessageBox.Show("数据库文件丢失!请找回!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            phoneNum = tstxtTel.Text.Trim();//完整手机号码
            tel = phoneNum.Substring(0, 3);//取手机号码前面三位判断
            if (checkTel()) {
                phoneNum = phoneNum.Substring(0, 7);//取手机号码前面七位进行查询
                string sql = "select * from '" + tel + "' where numberrange='" + phoneNum + "' limit 0,1";
                SQLiteConnection con = null;
                SQLiteCommand cmd = null;
                SQLiteDataReader dr = null;
                try {
                    con = new SQLiteConnection("Data Source=" + Application.StartupPath + "\\data");
                    cmd = new SQLiteCommand(sql, con);
                    con.Open();
                    dr = cmd.ExecuteReader();
                    if (dr.HasRows)//如果存在此记录
                    {
                        txtLocaltion.Text = dr.GetValue(1).ToString();
                        txtType.Text = dr.GetValue(2).ToString();
                        txtZipCode.Text = dr.GetValue(3).ToString();
                        txtCityNum.Text = dr.GetValue(4).ToString();
                    } else {
                        MessageBox.Show("暂时未查找到此号码的记录!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }

                } catch (Exception ex) {
                    MessageBox.Show("暂时未查找到此号码的记录!" + ex.Message, "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                } finally {
                    if (dr != null) {
                        dr.Close();
                        dr.Dispose();
                    }
                    con.Close();
                    con.Dispose();
                    tstxtTel.Focus();
                }
            }
        }
        //检验输入手机号码的合法性和正确性
        private bool checkTel() {
            if (phoneNum == null)//如果号码为空
            {
                MessageBox.Show("号码不能为空!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }
            Match num = Regex.Match(phoneNum, "[0-9]+");
            if (!num.Success)//如果号码不为数字
            {
                MessageBox.Show("手机号码输入错误!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }
            if (phoneNum.Length < 7)//如果号码长度小于七位
            {
                MessageBox.Show("手机号码必须要大于7位!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }
            if (phoneNum.Length > 11)//如果号码长度大于十一位
            {
                MessageBox.Show("手机号码必须要小于11位!", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                tstxtTel.Focus();
                return false;
            }
            if (tel != "130" && tel != "131" && tel != "132" && tel != "133" && tel != "134" &&
                tel != "135" && tel != "136" && tel != "137" && tel != "138" && tel != "139" &&
                tel != "150" && tel != "151" && tel != "152" && tel != "153" && tel != "156" &&
                tel != "158" && tel != "159" && tel != "180")//如果不是手机号码
            {
                MessageBox.Show("手机号码输入错误", "消息", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return false;
            }
            return true;
        }

        private void tstxtTel_KeyPress(object sender, KeyPressEventArgs e) {
            // 特殊键, 不处理
            if ((int)e.KeyChar <= 31) {
                return;
            }

            // 非数字键, 放弃该输入
            if (!char.IsDigit(e.KeyChar)) {
                e.Handled = true;
                return;
            }
        }

        private void tsbtnInternet_Click(object sender, EventArgs e) {
            phoneNum = tstxtTel.Text.Trim();
            string url = @"http://api.showji.com/Locating/query.aspx?m=" + phoneNum;
            wbMain.Navigate(url);
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e) {
            Application.ExitThread();
        }

        private void Form1_Load(object sender, EventArgs e) {
            //tstxtTel.Focus();//这样初始化焦点不行
        }

        private void Form1_Shown(object sender, EventArgs e) {
            tstxtTel.Focus();//这样才正确
        }
    }
}


手机信息查询源码:
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏4 转播转播
回复 论坛版权

使用道具 举报

沙发
lansiyao 发表于 2014-8-4 14:55:30 | 只看该作者
学习了!
回复

使用道具 举报

板凳
8246 发表于 2015-2-13 15:44:39 | 只看该作者
学习了!
回复

使用道具 举报

地板
aaines 发表于 2015-4-17 18:06:15 | 只看该作者
学习了!
回复

使用道具 举报

5#
coco345 发表于 2015-8-5 23:33:51 | 只看该作者
学习了,真强大
您需要登录后才可以回帖 登录 | 加入CSkin博客

本版积分规则

QQ|申请友链|小黑屋|手机版|Archiver|CSkin ( 粤ICP备13070794号

Powered by Discuz! X3.2  © 2001-2013 Comsenz Inc.  Designed by ARTERY.cn
GMT+8, 2024-4-26 20:33, Processed in 0.601988 second(s), 38 queries , Gzip On.

快速回复 返回顶部 返回列表