我该如何查看我的IP地址?

时间:2015-03-18 04:25:19

标签: php mysql codeigniter

我有登录功能,我使用用户名和密码登录。现在我也要检查id地址。我的ip地址在另一个表中,其中id与rank匹配。我需要知道如何在我的控制器的相同功能中检查ip。如何编写我的函数?

Ip address table:               login table:

id  ip_address                  ID uname pass      rank
2   98.231.50.890               1  admin admin321   1

这是我的登录功能。有一个档案级别。 IF等级为1.用户可以轻松登录其他智能功能将检查该IP地址。

public function loginAction() {
        $postArray = $this->input->post();
        $table= 'login';
        //$user_type=1;
        if (!empty($postArray)) {
            $result = $this->m_common->login_with_password_string($postArray['user_name'], $postArray['user_pass'], $table);
            if (!empty($result->ID) && isset($result->ID)) {
                $this->session->set_userdata('user_id',$result->ID);
                $this->session->set_userdata('user_name',$result->uname);
                $this->session->set_userdata('theme',$result->theme);
                $this->session->set_userdata('logged_in',1);
                //$this->is_logged_in($this->session->userdata('logged_in'));
                redirect(site_url(ADMIN.'/dashboard/view_player'));
//                echo 'Hello';
            } else {

                 $data['message']="Incorrect Username or Password";
                  $this->titlebackend("View Players");
                 $this->load->view('v_login',$data);
            }
        }
    }

2 个答案:

答案 0 :(得分:2)

  

你可以用这个

$ip = $this->input->ip_address(); echo $ip;

答案 1 :(得分:0)

步骤1,编写一个get ip address函数,如下面的

 function getRealIpAddr(){
  if(!empty($_SERVER['HTTP_CLIENT_IP'])){
      $ip = $_SERVER['HTTP_CLIENT_IP'];
  }elseif(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
      $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
  }else{
      $ip = $_SERVER['REMOTE_ADDR'];
  }
  return $ip;
}

步骤2,将所有ip_address作为数组从ip地址表中查询

$ips = array(); // assume this result from you database
if(in_array($ip,$ips)){
  // true
}
// or you can loop the ips array
foreach(ips as $lip){
  if($lip == $ip){
     //true
     break;
  }
}

对于你的情况,我建议你在存储到数据库之前将ip转换为long类型,因为当ip表具有大数据时,它将提高查询性能。

$long = ip2long($ip);