zoukankan      html  css  js  c++  java
  • 根据用户ip查询用户所在城市

    方法一:淘宝库查询

    接口地址: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]?dd?).){3}(2[0-4]d|25[0-5]|[01]?dd?)");
    

      

  • 相关阅读:
    极致:互联网时代的产品设计
    赋能
    从历史看管理
    格调
    @Value注解没有起作用的梳理
    装系统------- 了解常用的启动方式以及如何进入bios
    装系统 ------ 使用微PE 做系统盘
    eclipse ------------- 安装maven ,配置setting文件
    Maven ------ 了解与安装
    sqlException 使用relace 替换单引号
  • 原文地址:https://www.cnblogs.com/dushaojun/p/13132001.html
Copyright © 2011-2022 走看看