手机号码归属地查询

  •   本文是用来如果你没有自己的数据库,又想得到手机号码的归属地,介绍一个盗取别人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>
    publicstaticstring HttpWebResponsePost(string url, string postData, outstring 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;
    returnstring.Empty;
    }
    }
    复制代码
    
    
  •   接下来就是初始化参数,函数调用,处理需要的数据了。数据的处理可以使用String中的那些函数。一步一步的分析。或者熟悉正则表达式的,直接上正则,和爬虫一个做法。
复制代码
protectedvoid 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自己分析吧。循环得到数据值之后,放到自己设计的样式中。

 


          

 

            作者:Alexliu(alex dotNet Learning)
      出处:http://alexliu.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,转载请注明。并且保留文章链接。否则保留追究法律责任的权利。

 

注:主要转载这篇是为了看文章中国的代码,或许现在还用不上,等没事的时候可以,反过头来再看看。。。

posted on 2012-06-17 17:29  woshare  阅读(447)  评论(0编辑  收藏  举报