Codeigniter ci_sessions表将ip地址存储为0.0.0.0为什么?即使被托管,我也会得到0.0.0.


Codeigniter ci_sessions table storing ip address as 0.0.0.0 why? even when hosted I am getting 0.0.0.0

你好,在我的代码点火器中,我创建了一个表作为ci_sessions,其中包含以下字段

CREATE TABLE IF NOT EXISTS  `ci_sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(45) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);

每个字段都运行良好,除了ip地址,它为每个客户端存储为0.0.0.0。我已将config.php编辑如下。

$config['sess_cookie_name']     = 'ci_session';
$config['sess_expiration']      = 7200;
$config['sess_expire_on_close'] = FALSE;
$config['sess_encrypt_cookie']  = FALSE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']      = 'ci_sessions';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent'] = TRUE;
$config['sess_time_to_update']  = 300;

使用Linode,您的应用程序可能位于代理之后。您可以找到您的代理IP并将其添加到CodeIgniter配置文件(/application/config/config.php底部)的白名单中,也可以按照Linode的Nodebalancer Reference中的说明使用Apache mod_rpaf模块将X_FORWARDED_for重新映射到REMOTE_ADDR