获取IP位置和操作系统

时间:2013-04-13 19:13:59

标签: php html operating-system location ip

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

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

2 个答案:

答案 0 :(得分:2)

要获取客户端的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] =>
)

答案 1 :(得分:1)

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

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

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

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