这篇文章主要介绍了C#根据IP地址查询所属地区实例详解,调用的接口是免费的接口,有需要的同学可以研究下
ip-api.com接口(解析 json需要引入Newtonsoft.Json.dll ):
/// <summary>
/// 根据IP 获取物理地址
/// </summary>
/// <param name="ip">Ip地址</param>
/// <returns></returns>
public static string GetIpAddress(string ip)
{
string url = "http://ip-api.com/json/"+ip+"?lang=zh-CN";
string result = "";
WebRequest wrt = null;
WebResponse wrp = null;
try
{
wrt = WebRequest.Create(url);
wrt.Credentials = CredentialCache.DefaultCredentials;
wrp = wrt.GetResponse();
StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.UTF8);
//获取到的是Json数据
string html = sr.ReadToEnd();
//Newtonsoft.Json读取数据
JObject obj = JsonConvert.DeserializeObject<JObject>(html);
string city = obj["city"].ToString();
string province = obj["regionName"].ToString();
result = city.Equals(province) ? city : (province + city);
}
catch (Exception)
{
}
finally
{
if (wrp != null)
wrp.Close();
if (wrt != null)
wrt.Abort();
}
return result;
}
126.net接口:
/// <summary>
/// 根据IP 获取物理地址
/// </summary>
/// <param name="ip">Ip地址</param>
/// <returns></returns>
public static string GetstringIpAddress(string ip)
{
string url = "http://ip.ws.126.net/ipquery?ip="+ip;
string result="";
WebRequest wrt = null;
WebResponse wrp = null;
try
{
wrt = WebRequest.Create(url);
wrt.Credentials = CredentialCache.DefaultCredentials;
wrp = wrt.GetResponse();
StreamReader sr = new StreamReader(wrp.GetResponseStream(), Encoding.Default);
//获取到的数据格式:var lo="江苏省", lc="镇江市"; var localAddress={city:"镇江市", province:"江苏省"}
string html = sr.ReadToEnd();
string pattern = "{city:\"(?<key1>.*?)\", province:\"(?<key2>.*?)\"}";
Regex regex = new Regex(pattern, RegexOptions.None);
Match match = regex.Match(html);
string city=match.Groups["key1"].Value;
string province=match.Groups["key2"].Value;
result = city.Equals(province) ? city : (province + city);
}
catch (Exception)
{
}
finally
{
if (wrp != null)
wrp.Close();
if (wrt != null)
wrt.Abort();
}
return result;
}
到此这篇关于C#根据IP地址查询所属地区实例详解的文章就介绍到这了,更多相关C#根据IP地址查询所属地区内容请搜索得得之家以前的文章希望大家以后多多支持得得之家!
沃梦达教程
本文标题为:C#根据IP地址查询所属地区实例详解
基础教程推荐
猜你喜欢
- 首先创建代码,多对多,关联表中的附加字段 2022-01-01
- 错误“此流不支持搜索操作"在 C# 中 2022-01-01
- JSON.NET 中基于属性的类型解析 2022-01-01
- 全局 ASAX - 获取服务器名称 2022-01-01
- 是否可以在 asp classic 和 asp.net 之间共享会话状态 2022-01-01
- 从 VS 2017 .NET Core 项目的发布目录中排除文件 2022-01-01
- 在 VS2010 中的 Post Build 事件中将 bin 文件复制到物 2022-01-01
- 将事件 TextChanged 分配给表单中的所有文本框 2022-01-01
- 如何动态获取文本框中datagridview列的总和 2022-01-01
- 经典 Asp 中的 ResolveUrl/Url.Content 等效项 2022-01-01
