【问题标题】:How to get IP address / location of connecting visitors to my website, and show THEIR addresses to me?如何获取将访问者连接到我的网站的 IP 地址/位置,并向我显示他们的地址?
【发布时间】:2014-01-18 11:17:09
【问题描述】:

我正在寻求解决这个问题的帮助。我知道如何在 PHP 代码中获取 IPv4 地址,如下所示:

$ip = $_SERVER['REMOTE_ADDR'];

这是我在这里找到的许多此类问题的答案,但是如果我访问该网站,它只会显示我的 IP 地址,如果我的朋友访问该网站,他只会看到他的 IP 地址。问题是,我将在网站上有管理员界面,我需要确定所有连接客户端的 IP 地址 - 使用 php 或 javascript 并将其显示在我的网站上的管理界面中。服务器上的 apache 正在运行。有什么办法吗?

【问题讨论】:

  • 将它们保存到数据库表是一个选项?

标签: javascript php web location geoip


【解决方案1】:

我认为您想获取访问您网站的用户 IP 地址和 IP 地址的位置以及其他详细信息。

// get user details
        $user_agent = $_SERVER['HTTP_USER_AGENT']; //user browser
        $ip_address = $_SERVER["REMOTE_ADDR"];     // user ip adderss
        $page_name = $_SERVER["SCRIPT_NAME"];      // page the user looking
        $query_string = $_SERVER["QUERY_STRING"];   // what query he used
        $current_page = $page_name."?".$query_string; 


    // get location 
        $url = json_decode(file_get_contents("http://api.ipinfodb.com/v3/ip-city/?key=/*userapikey*/
        // you can get your api key form http://ipinfodb.com/
        ip=".$_SERVER['REMOTE_ADDR']."&format=json"));
        $country=$url->countryName;  // user country
        $city=$url->cityName;       // city
        $region=$url->regionName;   // regoin
        $latitude=$url->latitude;    //lat and lon
        $longitude=$url->longitude;

    // get time
        date_default_timezone_set('UTC');
        $date = date("Y-m-d");
        $time = date("H:i:s");

您现在可以将这些存储在数据库中,它会告诉您位置、用户浏览器以及他/她正在使用哪个页面

【讨论】:

  • 我不确定一个想法。好的,我需要创建一个数据库来存储数据(IP 地址和/或连接用户的位置),但是我将如何告诉数据库存储所有值?我的意思是我是否需要以某种方式遍历$ip = $_SERVER['REMOTE_ADDR'] 以从中获取所有值,而不是单独存储它们?我有点迷茫
  • 您可以通过 sql 查询将 where 值存储在数据库中。并且不需要为此运行循环。
【解决方案2】:

当有人访问该站点时,将$ip 的值放入数据库中。

当您想查看谁访问过该站点时,循环访问数据库的内容并显示它们。

您可能还希望包含时间戳并定期删除旧数据和/或忽略超过特定时间(例如 5 分钟)的数据。

【讨论】:

  • 此外,您可能还想在网站上存储他们的当前位置。您可以通过查看 $_SERVER['REQUEST_URI'] 来找到它。
  • 我不确定一个想法。好的,我需要创建一个数据库来存储数据(IP 地址和/或连接用户的位置),但是我将如何告诉数据库存储所有值?我的意思是我是否需要以某种方式遍历 $ip = $_SERVER['REMOTE_ADDR'] 以从中获取所有值,然后单独存储它们?我有点迷茫
  • "我将如何告诉数据库存储所有值" — 每次有人访问该页面时,您都会存储他们访问该页面的 IP。
  • "我是否需要通过 $ip = $_SERVER['REMOTE_ADDR'] 以某种方式循环以获取所有值" — 不,访问者的请求只会来自一个 IP,所以有没有什么可以循环的。
【解决方案3】:

好吧,两者都看到您自己的 IP,因为您只是在解析访问者的 IP,您需要将此远程地址保存在表中,然后只需执行查询以检索内容即可限制您的查询非常重要,然后只需解析结果,就可以看到访问者列表

【讨论】:

    【解决方案4】:

    我需要跟踪我网站访问者的 IP 地址和位置,以识别 google adwords 广告系列中的欺诈点击。该产品可以完成工作,不幸的是它不是免费的。请看看这是否能解决您的问题。

    http://www.opentracker.net/products/web-analytics/feature/ip-address-tracking

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-29
      • 2016-10-21
      • 1970-01-01
      • 2015-05-11
      • 1970-01-01
      • 2018-09-10
      • 2018-11-17
      相关资源
      最近更新 更多