2010-06-25 180 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