手机号码归属地查询
- 本文是用来如果你没有自己的数据库,又想得到手机号码的归属地,介绍一个盗取别人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/
本文版权归作者和博客园共有,欢迎转载,转载请注明。并且保留文章链接。否则保留追究法律责任的权利。
注:主要转载这篇是为了看文章中国的代码,或许现在还用不上,等没事的时候可以,反过头来再看看。。。