【问题标题】:Getting ip location and OS获取 ip 位置和操作系统
【发布时间】:2013-04-06 04:31:20
【问题描述】:

我想知道如何获取 ip 位置以及访问者正在运行什么操作系统。 比如说,我使用的是 Mac,所以如果我访问这个网站,它会说 Mac OS。

所以基本上像 ipchicken.com 这样的东西有。

【问题讨论】:

    标签: php html operating-system location ip


    【解决方案1】:

    要获取客户端的ip,使用全局$_SERVER数组:

    $ip = $_SERVER['REMOTE_ADDR'];
    

    要将 ip 解析为主机名,您可以使用gethostbyaddr()

    $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    

    对于将包含有关操作系统和客户端正在使用的浏览器的信息的用户代理标头,首选方法是使用函数get_browser()

    $clientInfo = get_browser(null, true);
    var_dump($clientInfo);
    

    ...什么会给你一个像这样的数组:

    Array
    (
        [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
        [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
        [parent] => Firefox 0.9
        [platform] => WinXP
        [browser] => Firefox
        [version] => 0.9
        [majorver] => 0
        [minorver] => 9
        [cssversion] => 2
        [frames] => 1
        [iframes] => 1
        [tables] => 1
        [cookies] => 1
        [backgroundsounds] =>
        [vbscript] =>
        [javascript] => 1
        [javaapplets] => 1
        [activexcontrols] =>
        [cdf] =>
        [aol] =>
        [beta] => 1
        [win16] =>
        [crawler] =>
        [stripper] =>
        [wap] =>
        [netclr] =>
    )
    

    【讨论】:

    • 非常感谢!我很快就会仔细研究一下:)
    【解决方案2】:

    访问者的 IP 在$_SERVER['REMOTE_ADDR'] 字段中可用,用户代理字符串在$_SERVER['HTTP_USER_AGENT'] 字段中可用。

    请注意,这两个信息可能正确也可能不正确,具体取决于访问者是否使用 HTTP 代理或修改浏览器发送的标头。

    Name Address可以通过反向DNS请求获得。

    要获取访问者的操作系统或浏览器供应商等信息,您可以使用 PHP 提供的get_browser() 函数或替换(取决于您运行代码的环境,PHP 所需的browscap.ini 文件@ 987654326@ 函数可能已过时或丢失)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多