现在的位置: 首页 > 综合 > 正文

手机号码归属地查询

2012年09月17日 ⁄ 综合 ⁄ 共 2005字 ⁄ 字号 评论关闭
  •   本文是用来如果你没有自己的数据库,又想得到手机号码的归属地,介绍一个盗取别人post的一个方法。本文涉及的一个网站,只是做一个例子,没有企图攻击欺骗,或者任何商业用途,只是单纯的技术研究,所以请大家不要进行非法的用途。
  •   还是先看效果

  

  • 首先要用到上一个blog中提到的Fiddler软件。打开,然后找个自己的目标地址。在原地址中进行数据的输入。点击查询按钮之后,按Fiddler中截获了什么内容。

  

  具体的说就是,在输入手机号码段的对话框中输入想要查询的号码短。之后查询,发现Fiddler的webSession中就会出现相应的数据交换,右侧的Session Inspector中的webForms和TextView就会显示出来,发送了也就是post过去了什么东西。由此可以得知数据是什么。多试几次,会发现一些规律。有些时候会拼凑一些%和16进制的数据一起向Server段发送。

  

  • 接下来要做的工作就是要处理html代码了。如何发送数据和读取结果。使用的是HttpWebRequest中的。如下。

            /// <summary>
    /// Web request and get the web post methods
    /// </summary>
    /// <param name="url"></param>
    /// <param name="postData"></param>
    /// <param name="err"></param>
    /// <returns></returns>
    public static string HttpWebResponsePost(string url, string postData, out string err)
    {
    Stream outstream
    = null;
    Stream instream
    = null;
    StreamReader sr
    = null;
    HttpWebResponse response
    = null;
    HttpWebRequest request
    = null;
    Encoding encoding
    = Encoding.Default;
    byte[] data = encoding.GetBytes(postData);
    try
    {
    request
    = WebRequest.Create(url) as HttpWebRequest;
    CookieContainer cookieContainer
    = new CookieContainer();
    request.CookieContainer
    = cookieContainer;
    request.AllowAutoRedirect
    = true;
    request.Method
    = "POST";
    request.ContentType
    = "application/x-www-form-urlencoded";
    request.ContentLength
    = data.Length;
    outstream
    = request.GetRequestStream();
    outstream.Write(data,
    0, data.Length);
    outstream.Close();
    response
    = request.GetResponse() as HttpWebResponse;
    instream
    = response.GetResponseStream();
    sr
    = new StreamReader(instream, encoding);
    string content = sr.ReadToEnd();
    err
    = string.Empty;
    return content;
    }
    catch (Exception ex)
    {
    err
    = ex.Message;
    return string.Empty;
    }
    }
    
    
  •   接下来就是初始化参数,函数调用,处理需要的数据了。数据的处理可以使用String中的那些函数。一步一步的分析。或者熟悉正则表达式的,直接上正则,和爬虫一个做法。
        protected void btnSub_Click(object sender, EventArgs e)
{
string aUrl = "";//输入地址
string err = "show out error";
string moblie = this.tbNum.Text;
string postData = string.Empty;
postData
= "mobile=" + moblie + "";//拼凑出来要发送的数据
string aHtml = HttpWebResponsePost(aUrl, postData, out err);
aHtml
= GetTableHtml(aHtml);
result.Visible
= true;
result.InnerHtml
= aHtml;
}

  • 我的处理方法是,索性就提取远网站的table中的所有内容,直接拿过来用:)如果嫌弃他的table设计,或者有所舍取,那么自己进去对table自己分析吧。循环得到数据值之后,放到自己设计的样式中。

抱歉!评论已关闭.