2010-06-25 122 views
0

我想跟踪访问我的博客的IP地址。我不知道我要使用哪个博客,我会使用哪个博客工作(我听说博主不能使用php)。跟踪IP地址

此外,一旦我创建了博客并设置了IP跟踪器,我将在哪里查找我的访问者的IP地址?提前致谢!

+0

这完全取决于你选择的博客。 – 2010-06-25 04:34:03

+0

那么,我应该选择哪个博客?我不知道哪一个最容易做到这一点? – 2010-06-25 04:37:06

+0

我不确定“博主不能用PHP工作”是什么意思,但Blogger是托管服务;你不会像Wordpress那样将它安装在你的网络服务器上,它是一个Google托管的网站 – 2010-06-25 04:42:24

回答

1

您可以检查您的http服务器的访问日志。这应该给你一个客户端请求的列表。

如果您寻找一个PHP的解决方案,你可以使用下面的获取客户端的IP地址:

$_SERVER['REMOTE_ADDR']; 

你需要编写一个快速的记录脚本来存储这些

$logFile = 'iplog.log'; 
if(!file_exists($logFile)) touch($logFile); 
if(is_writable($logFile)) { 
    $fh = fopen($logFile, 'a'); 
    if($fh) { 
    $line = $_SERVER['REMOTE_ADDR']."\n"; 
    fwrite($fh, $line, strlen($line)); 
    fclose($fh); 
    } 
} 
+0

谢谢,我在哪里放置这个脚本? – 2010-06-25 04:39:52

0

如果以后想要在博客的管理区域中使用这些IP,那么恕我直言,最好将它们存储在数据库中。稍后您可以缓存它们,但它是可选的。

在WordPress(这是非常有弹性的博客系统)数据库表默认情况下有wp_前缀。所以你可以做那样的事情。

CREATE TABLE IF NOT EXISTS wp_ip_tracking (
    id INT NOT NULL AUTO_INCREMENT, 
    ip VARCHAR(15) NOT NULL, 
    last_activity TIMESTAMP NOT NULL, 
    PRIMARY KEY(id), 
    UNIQUE(ip) 
); 

然后,你可以做一些函数,当成员做任何事情时都会调用它。取决于你需要什么。

function trackIP($ip) { 
    // Check if IP exists 
    $query1 = "SELECT id FROM wp_ip_tracking WHERE ip = '{$ip}'"; 
    // Insert new record with given IP 
    $query2 = "INSERT INTO wp_ip_tracking(id, ip, last_activity) VALUES(NULL, '{$ip}', NOW())"; 
    // Update record for specified IP 
    $query3 = "UPDATE wp_ip_tracking SET last_activity = NOW() WHERE ip = '{$ip}'"; 

    if(mysql_num_rows(mysql_query($query1)) == 0) { 
     mysql_query($query2); 
    } else { 
     mysql_query($query3); 
    } 
} 

我认为这两个应该可以帮助你解决你的问题。再次,它只是恕我直言。

+0

ip字段必须是int,而不是varchar – 2010-06-25 06:07:21

+0

为什么int?将它作为varchar存储起来会不会更容易?稍后,您可以通过(。)对其进行分解或对其进行其他操作。 – Eugene 2010-06-25 07:01:31