根据ip获取用户地理位置

各大网站都提供根据ip获取用户地理位置信息,这里以新浪的接口为例子

接口地址为:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.18.171.146

代码:

 1         #region 根据ip获取地点
 2         /// 获取Ip归属地
 3         /// </summary>
 4         /// <param name="ip">ip</param>
 5         /// <returns>归属地</returns>
 6         public static string GetIpAddress(string ip)
 7         {
 8             JavaScriptSerializer Jss = new JavaScriptSerializer();
 9             //http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip=218.18.171.146 调用新浪的接口
10             //var remote_ip_info = {"ret":1,"start":-1,"end":-1,"country":"\u4e2d\u56fd","province":"\u5e7f\u4e1c","city":"\u6df1\u5733","district":"","isp":"","type":"","desc":""};
11             string address = string.Empty;
12             try
13             {
14                 string reText = WebRequestPostOrGet("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip="+ip, "");
15                 reText = reText.Split(‘=‘)[1].Split(‘;‘)[0].Trim();
16                 Dictionary<string, object> DicText = (Dictionary<string, object>)Jss.DeserializeObject(reText);
17                 address = DicText["city"].ToString();
18             }
19             catch { }
20             return address;
21         }
22         #endregion

其中WebRequestPostOrGet方法:

 1         #region Post/Get提交调用抓取
 2         /// <summary>
 3         /// Post/get 提交调用抓取
 4         /// </summary>
 5         /// <param name="url">提交地址</param>
 6         /// <param name="param">参数</param>
 7         /// <returns>string</returns>
 8         public static string WebRequestPostOrGet(string sUrl, string sParam)
 9         {
10             byte[] bt = System.Text.Encoding.UTF8.GetBytes(sParam);
11
12             Uri uriurl = new Uri(sUrl);
13             HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(uriurl);//HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url + (url.IndexOf("?") > -1 ? "" : "?") + param);
14             req.Method = "Post";
15             req.Timeout = 120 * 1000;
16             req.ContentType = "application/x-www-form-urlencoded;";
17             req.ContentLength = bt.Length;
18
19             using (Stream reqStream = req.GetRequestStream())//using 使用可以释放using段内的内存
20             {
21                 reqStream.Write(bt, 0, bt.Length);
22                 reqStream.Flush();
23             }
24             try
25             {
26                 using (WebResponse res = req.GetResponse())
27                 {
28                     //在这里对接收到的页面内容进行处理
29
30                     Stream resStream = res.GetResponseStream();
31
32                     StreamReader resStreamReader = new StreamReader(resStream, System.Text.Encoding.UTF8);
33
34                     string resLine;
35
36                     System.Text.StringBuilder resStringBuilder = new System.Text.StringBuilder();
37
38                     while ((resLine = resStreamReader.ReadLine()) != null)
39                     {
40                         resStringBuilder.Append(resLine + System.Environment.NewLine);
41                     }
42
43                     resStream.Close();
44                     resStreamReader.Close();
45
46                     return resStringBuilder.ToString();
47                 }
48             }
49             catch (Exception ex)
50             {
51                 return ex.Message;//url错误时候回报错
52             }
53         }
54         #endregion Post/Get提交调用抓取

时间: 2024-08-05 07:06:55

根据ip获取用户地理位置的相关文章

微信公众平台开发(85) 获取用户地理位置

本文介绍在微信公众平台上如何使用高级接口开发获取用户地理位置的功能. 一.获取用户地理位置接口 开通了上报地理位置接口的公众号,用户在关注后进入公众号会话时,会弹框让用户确认是否允许公众号使用其地理位置.弹框只在关注后出现一次,用户以后可以在公众号详情页面进行操作. 用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,上报地理位置以推送XML数据包到开发者填写的URL来实现. 推送XML数据包示例: <xml> <ToUserName><![CDATA[t

微信获取用户地理位置,查找出附近所有商家

微信获取用户地理位置,官网上文档不太完善,还是附上 微信获取用户地理位置开发文档地址:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp142114084 总的来说分为两大部分 1,生成JS-SDK权限验证签名 2,使用地理位置接口获取坐标 完整类文件代码如下: <?php class JSSDK { private $appId; private $appSecret; public function __construct($a

百度接口通过ip获取用户所在地

/** * 百度接口 * 通过用户ip获取用户所在地 * @param userIp * @return */ public static String getAddressByBD2(String strIP) { try { URL url = new URL("http://opendata.baidu.com/api.php?query=" + strIP+"&co=&resource_id=6006&t=1433920989928&i

获取用户地理位置

1.利用h5 属性获取用户地理位置 h5的新增属性是支持用户获取地理位置的特别是手机,支持的情况会更好.具体写法如下 // 定位功能 getLocation () { if (navigator.geolocation) { navigator.geolocation.getCurrentPosition(showPosition, showError); } else { alert('浏览器不支持地理定位.'); } }, // 定位成功 showPosition (position) {

微信公众平台开发(106) 网页获取用户地理位置

关键字:微信公众平台 JSSDK 获取地理位置接口 网页获取用户地理位置 getLocation作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-web-location.html 在这篇微信公众平台开发教程中,我们将介绍如何在网页中获取用户的地理位置信息. 本文分为以下二个部分: 生成JS-SDK权限验证签名 使用地理位置接口获取坐标 一.微信JS-SDK 1. 获得Access Token access token的获得方法在前面有介绍,

微信公众平台获取用户地理位置之开发文档详解

开通了上报地理位置接口的公众号,用户在关注后进入公众号会话时,会弹框让用户确认是否允许公众号使用其地理位置.弹框只在关注后出现一次,用户以后可以在公众号详情页面进行操作. 获取用户地理位置 获取用户地理位置的方式有两种,一种是仅在进入会话时上报一次,一种是进入会话后每隔5秒上报一次.公众号可以在公众平台网站中设置. 用户同意上报地理位置后,每次进入公众号会话时,都会在进入时上报地理位置,或在进入会话后每5秒上报一次地理位置,上报地理位置以推送XML数据包到开发者填写的URL来实现. 推送XML数

微信公众号获取用户地理位置

很久没搞微信的js-sdk了, 搞了一下午, 刷新页面老是失败, 没想到结合经验给大家展示下获取用户地理位置 第一步:登录微信公众号https://mp.weixin.qq.com 首先先设置最基本的配置(这一步大家应该都会) 第二步:点击公众平台右上角展开点击功能设置 配置网页授权域名 填写项目所使用的的域名并将文件下载放到项目根目录 然后在配置js安全域名同样将要下载的txt文件放到项目目录也可以是二级目录, 如果放到二级目录域名后面要就目录路径哦 保存之后: 第三步: 公众号左边栏,开发-

用户Ip地址和百度地图api接口获取用户地理位置(经纬度坐标,城市)

<?php //获取用户ip(外网ip 服务器上可以获取用户外网Ip 本机ip地址只能获取127.0.0.1) function getip(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $cip = $_SERVER["HTTP_CLIENT_IP"]; } else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ $cip = $_SERVER[&quo

高级接口--获取用户地理位置

官方文档 开启: 转换坐标到地址: WGS-84,GCJ-02(腾讯地图,Google中国地图),百度坐标系统.(百度地图支持将 WGS-84,GCJ-02转换成百度坐标的功能) 当微信公众号获取用户地理位置坐标以后,需要将坐标转换成用户的真实所在地,以便更直观第理解以及进行用户数据分析 百度地图 GeocodingAPI提供逆地址解析功能,即由经纬度信息得到地址信息.当我们进行逆地址解析的时候,需要注意选择正确的坐标类型. http://api.map.baidu.com/lbsapi/clo