Php Codeigniter ci_会话表将ip地址存储为0.0.0.0为什么?即使在托管时,我也会得到0.0.0.0

Php Codeigniter ci_会话表将ip地址存储为0.0.0.0为什么?即使在托管时,我也会得到0.0.0.0,php,codeigniter,session-cookies,codeigniter-url,codeigniter-routing,Php,Codeigniter,Session Cookies,Codeigniter Url,Codeigniter Routing,您好,在我的codeigniter中,我创建了带有以下字段的表作为ci_会话 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) unsig

您好,在我的codeigniter中,我创建了带有以下字段的表作为ci_会话

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
的底部)的白名单中,或者按照上的说明使用Apache
mod_rpaf
模块将X_FORWARDED_重新映射到REMOTE_ADDR

为什么不能使用此
$this->input->ip_address()在插入查询中?您已将
sess\u use\u database
设置为
FALSE
然后如何在数据库中获取记录?我在数据库中获取值,但对于ip地址,我获取0.0.0.0'0.0.0'是当ip地址被视为无效(不符合ipv4或ipv6标准)时,Input::ip\u address()方法的回退值。你在哪里主持?@luciddreamz我错过了什么吗??