标签:har 用户 pre call odi request detail static json
方法一:淘宝库查询
接口地址:http://ip.taobao.com/service/getIpInfo.php?ip=127.0.0.1
此方法查询速度慢,而且有查询次数限制,不推荐
方法二:ip-api查询
接口地址:http://ip-api.com/json/123.12.12.12?callback=?lang=zh-CN
查询注意事项
1、这种查询不支持本地查询,如你把ip地址写为127.0.0.1他是查不出来的
2、lang=zh-CN是国家代码,默认不写的话返回的是拼音
此方法返回结果全面,而且参数可配,推荐使用这种方法,api文档地址:https://ip-api.com/#docs/api
前端获取方法
资源地址在这里:https://download.csdn.net/download/duangufei/12524863
后端获取方法(C#)
//根据ip获取城市信息
public ResultModel<IPModel> GetIpDetail()
        {
        //ip一定要是具体的ip地址
            string hostAddress = GetHostAddress() == "127.0.0.1" ? "123.23.23.23" : GetHostAddress();
            string url = "http://ip-api.com/json/"+ hostAddress + "?lang=zh-CN";
            string cs = "";
            WebClient client = new WebClient();
            var buffer = client.DownloadData(url);
            ResultModel<IPModel> resultModel = new ResultModel<IPModel>();
            try
            {
                string jsonText = Encoding.UTF8.GetString(buffer);
                JObject jo = JObject.Parse(jsonText);
                var ip = hostAddress;
                var name = jo["city"];
                var regionName = jo["regionName"];
                IPModel iPModel = new IPModel
                {
                    region = regionName.ToString(),
                    city = name.ToString(),
                };
                resultModel = new ResultModel<IPModel>
                {
                    ip = ip.ToString(),
                    code = 0,
                    data = iPModel
                };
            }
            catch (System.Exception )
            {
                
            }
            
            //int s = str.IndexOf(‘市‘);
            return resultModel;
        }
//获取用户的ip地址
public static string GetHostAddress()
        {
            string userHostAddress = HttpContext.Current.Request.UserHostAddress;
            if (string.IsNullOrEmpty(userHostAddress))
            {
                userHostAddress = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"];
            }
            if (!string.IsNullOrEmpty(userHostAddress) && IsIP(userHostAddress))
            {
                return userHostAddress;
            }
            return "127.0.0.1";
        }
//IP地址验证 
public static bool IsIP(string ip) =>
            Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)");
标签:har 用户 pre call odi request detail static json
原文地址:https://www.cnblogs.com/dushaojun/p/13132001.html