调用ip138的页面获取IP地址
2011-07-15 13:02
357 查看
本源码类参考http://p3p3pp3.yo2.cn开发的动态DNS程序 http://www.ajaxcn.net/archives/1671 using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Text;
namespace tphp
{
/// <summary>
/// REST方式指令工具
/// </summary>
public class RESTCommand
{
/// <summary>
/// 发送指令
/// </summary>
/// <param name="URL">所在URL</param>
/// <param name="postinfo">指令信息</param>
/// <returns>返回的JSON结果</returns>
public static string SendCommand(string URL, string postinfo)
{
return htmlGetter(URL, postinfo, "UTF-8", true, null, null);
}
public static string htmlGetter(string URL, string post, string codename, bool isPost, string[] headinfo, string Referer)
{
Encoding myEncoding = Encoding.GetEncoding(codename);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.ServicePoint.Expect100Continue = false;
byte[] byteData = myEncoding.GetBytes(post);
if (isPost)
{
request.Method = "POST";
}
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteData.Length;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
if (Referer != null)
{
request.Referer = Referer;
}
if (headinfo != null)
{
for (int i = 0; i < headinfo.Length; i++)
{
request.Headers.Add(headinfo[i]);
}
}
//if (_isDebug)
//{
// WebProxy myproxy = new WebProxy("127.0.0.1", 8888);
// request.Proxy = myproxy;
//}
if (isPost)
{
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(byteData, 0, byteData.Length);
}
}
try
{
//处理响应
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader sr2 = new StreamReader(response.GetResponseStream(), myEncoding))
{
string rhtml = sr2.ReadToEnd();
return rhtml;
}
}
}
catch (WebException ex)
{
throw;
}
}
}
/// <summary>
/// 序列化工具
/// </summary>
public class SerializationTool
{
/// <summary>
/// 从Jsontext获取实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="JsonText"></param>
/// <returns></returns>
public static T GetObj<T>(string JsonText)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(JsonText));
T obj = (T)ds.ReadObject(ms);
ms.Close();
return obj;
}
/// <summary>
/// 从实体转换到JsonText
/// </summary>
/// <param name="myobj">实体实例</param>
/// <returns></returns>
public static string ParseObj(object myobj)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(myobj.GetType());
MemoryStream ms2 = new MemoryStream();
ds.WriteObject(ms2, myobj);
string JSONString = Encoding.UTF8.GetString(ms2.ToArray());
ms2.Close();
return JSONString;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
namespace tphp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string pagehtml = RESTCommand.htmlGetter(@"http://www.ip138.com/ip2city.asp", "", "gb2312", false, null, null);
string ipregex = @"您的IP地址是:\[(?<ip>.*)\]";
Regex myRegex = new Regex(ipregex);
Match mymatch = myRegex.Match(pagehtml);
string ipaddress = mymatch.Groups["ip"].Captures[0].Value;
Response.Write(ipaddress);
}
}
}
using System.Collections.Generic;
using System.IO;
using System.Net;
using System.Runtime.Serialization.Json;
using System.Text;
namespace tphp
{
/// <summary>
/// REST方式指令工具
/// </summary>
public class RESTCommand
{
/// <summary>
/// 发送指令
/// </summary>
/// <param name="URL">所在URL</param>
/// <param name="postinfo">指令信息</param>
/// <returns>返回的JSON结果</returns>
public static string SendCommand(string URL, string postinfo)
{
return htmlGetter(URL, postinfo, "UTF-8", true, null, null);
}
public static string htmlGetter(string URL, string post, string codename, bool isPost, string[] headinfo, string Referer)
{
Encoding myEncoding = Encoding.GetEncoding(codename);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(URL);
request.ServicePoint.Expect100Continue = false;
byte[] byteData = myEncoding.GetBytes(post);
if (isPost)
{
request.Method = "POST";
}
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byteData.Length;
request.UserAgent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
if (Referer != null)
{
request.Referer = Referer;
}
if (headinfo != null)
{
for (int i = 0; i < headinfo.Length; i++)
{
request.Headers.Add(headinfo[i]);
}
}
//if (_isDebug)
//{
// WebProxy myproxy = new WebProxy("127.0.0.1", 8888);
// request.Proxy = myproxy;
//}
if (isPost)
{
using (Stream requestStream = request.GetRequestStream())
{
requestStream.Write(byteData, 0, byteData.Length);
}
}
try
{
//处理响应
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
using (StreamReader sr2 = new StreamReader(response.GetResponseStream(), myEncoding))
{
string rhtml = sr2.ReadToEnd();
return rhtml;
}
}
}
catch (WebException ex)
{
throw;
}
}
}
/// <summary>
/// 序列化工具
/// </summary>
public class SerializationTool
{
/// <summary>
/// 从Jsontext获取实体
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="JsonText"></param>
/// <returns></returns>
public static T GetObj<T>(string JsonText)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(typeof(T));
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(JsonText));
T obj = (T)ds.ReadObject(ms);
ms.Close();
return obj;
}
/// <summary>
/// 从实体转换到JsonText
/// </summary>
/// <param name="myobj">实体实例</param>
/// <returns></returns>
public static string ParseObj(object myobj)
{
DataContractJsonSerializer ds = new DataContractJsonSerializer(myobj.GetType());
MemoryStream ms2 = new MemoryStream();
ds.WriteObject(ms2, myobj);
string JSONString = Encoding.UTF8.GetString(ms2.ToArray());
ms2.Close();
return JSONString;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Text.RegularExpressions;
namespace tphp
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
string pagehtml = RESTCommand.htmlGetter(@"http://www.ip138.com/ip2city.asp", "", "gb2312", false, null, null);
string ipregex = @"您的IP地址是:\[(?<ip>.*)\]";
Regex myRegex = new Regex(ipregex);
Match mymatch = myRegex.Match(pagehtml);
string ipaddress = mymatch.Groups["ip"].Captures[0].Value;
Response.Write(ipaddress);
}
}
}
调用ip138的页面获取IP地址
相关文章推荐
- java调用IP138获取本机IP以及通过IP地址获取区域名称
- ASP.NET通过IP138来获取外面IP地址
- [置顶] C#中通过调用webService获取上网IP地址的区域的方法
- 用netsh切换自动获取IP和手动配置IP地址
- java获取用户访问的真实IP地址和代理IP
- [Win32]根据主机名、域名、IP字符串获取IP地址
- Jquery调用iframe页面方法、获取节点操作
- java代码 调用dos的ipconfig /all 命令,获取网卡详细信息
- wordpress文章页,内容页面获取调用显示作者id编号
- jquery 父、子页面之间页面元素的获取,方法的调用
- C# 设置IP地址及设置自动获取IP
- PHP获取 当前页面名称、主机名、URL完整地址、URL参数、获取IP
- jquery 父、子页面之间页面元素的获取,方法的调用
- 静态页面用js获取IP
- 根据IP地址获取IP的详细信息
- TP获取操作日志需要的值(ip、当前页面、全部get、post值)
- 无法获取IP地址,运行“ipconfig/renew”命令后提示“RPC服务器不可用”的解决方法
- HttpServletRequest调用getRemoteAddr获取IP返回0:0:0:0:0:0:0:1的问题
- [摘抄-Socket-学习中]socket监听本地IP(INADDR_ANY)以及获取本地IP地址
- PHP获取访客IP、地区位置信息、浏览器、来源页面