首页 >PHP讨论组 >请问,为什么我的每一个注册用户的ip地址都显示是0.0.0.0

请问,为什么我的每一个注册用户的ip地址都显示是0.0.0.0请问,为什么我的每一个注册用户的ip地址都显示是0.0.0.0

为什么我的每一个注册用户的ip地址都显示是0.0.0.0,可以确定代码是没错的1.png

<?php

if(trim($_POST['password'])!=trim($_POST['firmPassword'])){

   exit("两次输入的密码不一致");

}

$userName=trim($_POST['userName']);

$password=md5(trim($_POST['password']));

$time=time();

$ip=ip2long($_SERVER['REMOTE_ADDR']);

echo $ip;

$conn=mysqli_connect("localhost","root","");

if(mysqli_errno($conn)){

   echo mysqli_error($conn);

   exit;

}

mysqli_set_charset($conn, 'utf8');

mysqli_select_db($conn,'zhuce_php');

$sql = "insert into user(`userName`,`password`,`createtime`,`createip`) values ('" 


. $userName . "','" . $password . "','" . $time . "','" . $ip . "')";

$result=mysqli_query($conn,$sql);

echo '当前用户插入的ID为:'.$conn->insert_id;  

if($result){

  echo "成功<br/>";

}else{

  echo"失败";

}

mysqli_close($conn);


?>


 
3
 
+1
-1
 
分享
全部回复 (3)我来回答
    Peter_Zhu
    2楼
    Peter_Zhu · 1星期前

    如果你是Mac电脑,那么本地主机IP就是0.0.0.0

      赞+0添加回复

    寻觅 beyond
    1楼
    寻觅 beyond · 1星期前

    你先确认一下$_SERVER['REMOTE_ADDR']在你的机器上运行,会输出什么,是127.0.0.1,还是::1,

    然后,ip2long使用ip转化为长整型(10位),32位ip(ipV4)转化为整数,转化之后却是一个负数,所以需要用sprintf("%u",$ip)转化为unsigned int 类型,然后,就没有然后了,应该就是这点问题

      赞+0添加回复

    回复

    $_SERVER['REMOTE_ADDR']输出的是::1 你说的后面那些就不懂了

    Fllllll 作者 · 1星期前
    首页上一页1下一页尾页