【问题标题】:How to obtain user browser details, IP address and location information?如何获取用户浏览器详细信息、IP 地址和位置信息?
【发布时间】:2017-02-08 22:48:42
【问题描述】:

我在获取用户浏览器信息、IP 地址和 GEO 位置方面需要帮助。我们正在开发 asp.net 应用程序,我们需要上述信息来跟踪用户信息,从他/她使用浏览器/IP 信息访问应用程序的位置。以下是我们需要并需要存储在应用程序数据库中的详细信息。

  1. 浏览器信息/版本
  2. 操作系统
  3. 设备(台式机/笔记本电脑/平板电脑/手机)
  4. IP 地址
  5. 国家代码/国家名称
  6. 城市
  7. 地区

是否可以从一个来源获取所有信息?我已经用谷歌搜索了这些,并建议使用第三方 API 根据 IP 地址获取地理信息,无论 API 是否可以可靠地使用应用程序。有没有最好的方法来构建自己的 API 来获取这些信息以及如何?请指教。

【问题讨论】:

  • navigator 对象中提供了一些所需信息。允许地理定位跟踪取决于用户偏好,IP 检测只能在服务器端完成。
  • navigator.geolocation 在我们检索信息时会请求用户的许可,并且不支持旧浏览器。

标签: javascript asp.net browser geolocation ip-address


【解决方案1】:

试试下面的javascript函数,这将返回浏览器名称和浏览器版本。

function get_browser()
{
    var ua = navigator.userAgent, tem,
    M=ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) ||[];

    if (/trident/i.test(M[1]))
    {
        tem = /\brv[ :]+(\d+)/g.exec(ua) || [];
        return { name: 'IE', version: (tem[1] || '') };
                                                        }
        if (M[1] === 'Chrome')
        {
            tem = ua.match(/\bOPR\/(\d+)/)

            if (tem != null)
            {
                return { name: 'Opera', version: tem[1] }; 
            }
        }

    M = M[2] ? [M[1], M[2]] : [navigator.appName, navigator.appVersion, '-?'];
    if ((tem = ua.match(/version\/(\d+)/i)) != null)
    {
        M.splice(1, 1, tem[1]);
    }

    return {
        name: M[0],
        version: M[1]
    };
}

【讨论】:

    【解决方案2】:

    如果其他人可能需要更短的方法来完成问题中提到的任务,他们可以使用下面的代码;

    <div id="demo"></div>
    <script type="text/javascript">
        var txt = "";
        txt += "<p> Browser CodeName: <strong>"+navigator.appCodeName+" </strong></p>";
        txt += "<p> Browser Name: <strong>"+navigator.appName+"</strong></p>";
        txt += "<p> Browser Version: <strong>"+navigator.appVersion+"</strong></p>";
        txt += "<p> Cookies Enabled: <strong>"+navigator.cookieEnabled+"</strong></p>";
        txt += "<p> Browser Online: <strong>"+navigator.onLine+"</strong></p>";
        txt += "<p> Language: <strong>"+navigator.language+"</strong></p>";
        txt += "<p> Platform: <strong>"+navigator.platform+"</strong></p>";
        txt += "<p> User-agent Header: <strong>"+navigator.userAgent+"</strong></p>";
        document.getElementById("demo").innerHTML=txt;
    </script>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-01
      • 2023-03-16
      • 2018-02-05
      • 1970-01-01
      • 2015-12-26
      • 1970-01-01
      相关资源
      最近更新 更多