知道IP地址并检查它是否已在我的数据库中注册

时间:2016-08-04 07:23:46

标签: php ip-address

我需要获取计算机IP地址,我需要检查该IP地址是否在我的数据库中。如果是,我需要显示注册到我的数据库中的IP地址的名称。

实际上我很困惑,因为没有检测到错误,但没有显示输出。

这是我的代码

<?php
$ipname = gethostbyname(trim(`hostname`));
$ip_query = "SELECT ip_address FROM table 5";
$ip_add = mysql_query($ip_query);

if ($ip_add === $ipname){
echo "{$ip_add['guest_name']}";
}
?>

2 个答案:

答案 0 :(得分:0)

在某些情况下,检索IP的方式不起作用,因此首先需要使用已实现的函数here来获取IP。对于查询本身,查询仅检索前5行,因此您需要添加“where”部分,以便查询应该类似于$ ip_query =“SELECT ip_address FROM table where ip = $ ipname”;然后你不应该比较mysql_query的输出,输出是一个mysql资源你应该使用另一个函数来获得结果

$num_rows = mysql_num_rows($ip_add) 
if ($num_rows>=1) { 
$ip = mysql_result($ip_add,0,'ip_address'); 

// then compare the ip variable with the one you have from the function 

}

答案 1 :(得分:0)

通过给定function查找IP Address。在那里检查查询。如果存在ip address,请打印guest name

[注意:我使用YourTableName作为表名。在查询中放入适当的表名。]

<?php
$ipname = getIpAddress();

$query = mysql_query("SELECT guest_name FROM `YourTableName` WHERE ip_address = '$ipname'");
$countUser = mysql_num_rows($query);

if($countUser > 0){
  while($row = mysql_fetch_array($query)){
    echo "User Name: ".$row['guest_name']."<br>";
  }
} else {
  //Your Logic
}

function getIpAddress() {
  if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
    return $_SERVER['HTTP_CLIENT_IP'];
  } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
    return trim($ips[count($ips) - 1]);
  } else {
    return $_SERVER['REMOTE_ADDR'];
  }
}
?>

NOTE: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead