drvfqr5609 2010-09-30 06:50
浏览 97
已采纳

将IP存储为unsigned int?

I read that the best way to store IP addresses in a database is to make an Unsigned Int(10) field. How do I convert the IP addresses using PHP? I've tried using

$this->ip = long2ip($_SERVER['REMOTE_ADDR']);

But this doesn't seem to work. I found the way to convert it back to an IP address using

$this->ip = sprintf("%u", ip2long($result['ip']));

How do I convert the IP Address initially? Should I be using PHP for this? Or would it be better to integrate into the MySQL query?

  • 写回答

5条回答 默认 最新

  • douzheren3349 2010-09-30 06:54
    关注

    long2ip converts an integer into the IP format and ip2long does the inverse.

    So use ip2long to convert $_SERVER['REMOTE_ADDR'] into an integer for storing it in the database and use long2ip after reading the integer from the database:

    $long = ip2long($_SERVER['REMOTE_ADDR']);
    $ip   = long2ip($long);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器