Tôi muốn lưu trữ địa chỉ IP trong cơ sở dữ liệu của mình, nhưng tôi cũng cần sử dụng chúng trong toàn bộ ứng dụng của mình. Tôi đọc về cách sử dụng INET_ATON()
và INET_NTOA()
trong các truy vấn MySQL để lấy số nguyên không dấu 32 bit ra khỏi địa chỉ IP, chính xác là những gì tôi muốn vì nó sẽ tìm kiếm thông qua cơ sở dữ liệu nhanh hơn sử dụng char (15).INET_ATON() và INET_NTOA() bằng PHP?
Vấn đề là, tôi không thể tìm thấy chức năng thực hiện cùng một loại điều trong PHP. Điều duy nhất tôi đi qua là:
http://php.net/manual/en/function.ip2long.php
Vì vậy, tôi đã thử nghiệm nó:
$ip = $_SERVER['REMOTE_ADDR'];
echo ip2long($ip);
Và nó ra gì. Trong ví dụ họ đã cho nó có vẻ làm việc, nhưng sau đó một lần nữa tôi không chính xác chắc chắn nếu ip2long()
không giống như INET_ATON()
.
Có ai đó biết một hàm PHP sẽ thực hiện việc này không? Hoặc thậm chí là một giải pháp hoàn toàn mới để lưu trữ địa chỉ IP trong cơ sở dữ liệu?
Cảm ơn.
Quên để thêm, tôi đang làm việc trên localhost, như vậy có lẽ đó là lý do tại sao ip2long() không trả lại bất cứ điều gì? – blerh
IPv4 của localhost vẫn là 127.0.0.1, nó sẽ hoạt động trừ khi bạn đang sử dụng IPv6 - kiểm tra câu trả lời của tôi. –