C#(asp.net)读取yodao提供的ip地址库接口查询IP地址
在編程當中會遇到需要根據IP來源判斷IP的詳細地址,在國內大多數系統都會采用純真IP數據庫,把IP數據庫下載到本地,然后進行調用,像discuz論壇采用的就是此類方法。但是此類方法存在許多缺點:IP數據庫文件比較大,如discuz的IP數據庫就達到了6M;由于IP每天都會有增加和減少,這就使得下載到本地的IP數據庫更新不及時......。
有什么方法可以達到根據IP取IP地址完美方法呢?答案就是使用第三方提供的IP接口。
有道(yodao)提供了IP地址查詢接口,我們就采用有道(yodao)提供的IP地址查詢接口詳細講解,用C#(asp.net)調用。
有道(yodao)提供的接口返回給我們是xml格式的文件,在IE中輸入網址:http://www.youdao.com/smartresult-xml/search.s?type=ip&q=59.58.2.171,得到的格式文件就是:
<?xml version="1.0" encoding="gbk" ?>
- <smartresult>
- <product type="ip">
<ip>119.39.90.225</ip>
<location>福建省寧德市 (古田縣)電信 </location>
</product>
</smartresult>
我們真正需要只有<location>湖南省 網通</location> 這個,C#(asp.net)調用代碼如下:
#region 讀取http://www.yodao.com接口IP地址
/// <summary>
/// 讀取http://www.yodao.com接口IP地址
/// </summary>
public static string GetstringIpAddress(string strIP)//strIP為IP
{
string sURL = "http://www.youdao.com/smartresult-xml/search.s?type=ip&q="+strIP+"";//youdao的URL
string stringIpAddress = "";
using (XmlReader read = XmlReader.Create(sURL))//獲取youdao返回的xml格式文件內容
{
while (read.Read())
{
switch (read.NodeType)
{
case XmlNodeType.Text://取xml格式文件當中的文本內容
if (string.Format("{0}", read.Value).ToString().Trim() != strIP)//youdao返回的xml格式文件內容一個是IP,另一個是IP地址,如果不是IP
那么就是IP地址
{
stringIpAddress=string.Format("{0}", read.Value).ToString().Trim();//賦值
}
break;
//other
}
}
}
return stringIpAddress;
}
#endregion 讀取http://www.yodao.com接口IP地址
總結
以上是生活随笔為你收集整理的C#(asp.net)读取yodao提供的ip地址库接口查询IP地址的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 被人忽悠完成的56.com我秀聊天室群发
- 下一篇: 深入理解计算机系统 -- 程序的机器级表