Có thể trùng lặp: Cách lưu trữ IP trong MySQL
How to store an IP in mySQL
Tôi muốn lấy địa chỉ IP từ $_SERVER['REMOTE_ADDR']
và một số biến $_SERVER
khác, kiểu dữ liệu nào là đúng cho việc này?
Có phải VARCHAR[n]
không?
hỏi ngày 27 tháng 2 năm 2011 lúc 13:54Feb 27, 2011 at 13:54
ComfaletcomfaletComFreek
28.5K18 Huy hiệu vàng103 Huy hiệu bạc153 Huy hiệu đồng18 gold badges103 silver badges153 bronze badges
5
Vì địa chỉ IPv4 dài 4 byte, bạn có thể sử dụng ____10 [
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
1] có chính xác 4 byte:`ipv4` INT UNSIGNED
Và
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
2 và INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
3 để chuyển đổi chúng:INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
Đối với địa chỉ IPv6, bạn có thể sử dụng
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
4 thay thế:`ipv6` BINARY[16]
Và sử dụng PHP từ
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
5 và INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
6 để chuyển đổi:'INSERT INTO `table` [`ipv6`] VALUES ["'.mysqli_real_escape_string[inet_pton['2001:4860:a005::68']].'"]'
'SELECT `ipv6` FROM `table`'
$ipv6 = inet_pton[$row['ipv6']];
Comfalet
28.5K18 Huy hiệu vàng103 Huy hiệu bạc153 Huy hiệu đồng18 gold badges103 silver badges153 bronze badges
Vì địa chỉ IPv4 dài 4 byte, bạn có thể sử dụng ____10 [
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
1] có chính xác 4 byte:Feb 27, 2011 at 14:00
6
Và
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
2 và INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
3 để chuyển đổi chúng:- Đối với địa chỉ IPv6, bạn có thể sử dụng
4 thay thế:INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]]; SELECT INET_NTOA[`ipv4`] FROM `table`;
7, if your want to store the IP address as a stringINSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]]; SELECT INET_NTOA[`ipv4`] FROM `table`;
- Và sử dụng PHP từ
5 vàINSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]]; SELECT INET_NTOA[`ipv4`] FROM `table`;
6 để chuyển đổi:INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]]; SELECT INET_NTOA[`ipv4`] FROM `table`;
- Và sử dụng PHP từ
- Comfalet
9 [4 bytes], if you convert the IP address to an integerINSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]]; SELECT INET_NTOA[`ipv4`] FROM `table`;
- Đã trả lời ngày 27 tháng 2 năm 2011 lúc 14:00
Bạn có hai khả năng [đối với địa chỉ IPv4]:
A
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
7, nếu bạn muốn lưu trữ địa chỉ IP dưới dạng chuỗiINSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
8 Ví dụFeb 27, 2011 at 13:57
một
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
9 [4 byte], nếu bạn chuyển đổi địa chỉ IP thành một số nguyênPascal MARTIN
0 cho IP tôi đã sử dụng trước đây77 gold badges647 silver
badges656 bronze badges`ipv6` BINARY[16]
6
Giải pháp thứ hai sẽ yêu cầu ít không gian hơn trong cơ sở dữ liệu và có lẽ là lựa chọn tốt hơn, ngay cả khi nó ngụ ý một chút thao tác khi lưu trữ và truy xuất dữ liệu [chuyển đổi nó từ/sang một chuỗi].
Về các thao tác đó, hãy xem các hàm
`ipv6` BINARY[16]
1 và `ipv6` BINARY[16]
2, ở phía PHP hoặc `ipv6` BINARY[16]
3 và `ipv6` BINARY[16]
4 trên phía MySQL.INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
8 Ví dụFeb 27, 2011 at 13:57
một
INSERT INTO `table` [`ipv4`] VALUES [INET_ATON["127.0.0.1"]];
SELECT INET_NTOA[`ipv4`] FROM `table`;
9 [4 byte], nếu bạn chuyển đổi địa chỉ IP thành một số nguyênMichael Berkowski
0 cho IP tôi đã sử dụng trước đây46 gold badges437 silver badges382 bronze badges`ipv6` BINARY[16]
Ngày 6 tháng 9 năm 2020c Category: PHPMysQL Category : PHP MySql
Nếu bạn muốn lưu trữ địa chỉ IP trong cơ sở dữ liệu MySQL thì hãy sai lầm khi sử dụng kiểu dữ liệu varchar vì bạn có thể sử dụng kiểu dữ liệu int unsign 4 [byte]. Sử dụng kiểu dữ liệu số nguyên, bạn có thể tiết kiệm nhiều không gian hơn trong cơ sở dữ liệu.
Khi bạn bắn truy vấn chèn vào thời điểm đó, sử dụng inet_aton [] và chọn truy vấn tại thời điểm đó inet_ntoa [] sử dụng. Làm thế nào để sử dụng chức năng này cho ví dụ dưới đây.
Tạo bảng :
CREATE TABLE IF NOT EXISTS `ip_addresses` [
`id` int[10] unsigned NOT NULL AUTO_INCREMENT,
`ip_address` INT[4] UNSIGNED NOT NULL,
PRIMARY KEY [`id`]
];
Chèn dữ liệu:
INSERT INTO `ip_addresses` [`ip_address`] VALUES [INET_ATON["127.0.0.1"]];
Chọn dữ liệu:
SELECT id, INET_NTOA[`ip_address`] as ip FROM `ip_addresses`;
Hãy thử điều này, đây là một điều rất đơn giản .......
Hardik Savani
Tôi là một nhà phát triển đầy đủ, doanh nhân và chủ sở hữu của Aatman Infotech. Tôi sống ở Ấn Độ và tôi thích viết các hướng dẫn và lời khuyên có thể giúp cho các nghệ nhân khác. Tôi là một fan hâm mộ lớn của PHP, Laravel, Angular, Vue, Node, JavaScript, JQuery, Codeigniter và Bootstrap từ giai đoạn đầu. Tôi tin vào sự chăm chỉ và nhất quán.
Theo tôi:
Bài viết phổ biến
- Laravel - Sắp xếp cột với ví dụ Pagination
- Hướng dẫn bảng quản trị của Laravel 6
- Làm thế nào để chuyển đổi mảng thành chuỗi trong PHP?
- Php Codeigniter 3 Ajax Pagination bằng ví dụ jQuery
- Laravel - API Twitter sử dụng hướng dẫn của Thujohn/Twitter
- Làm thế nào để xóa các giá trị trống khỏi mảng trong PHP?
- Làm thế nào để có được phần mở rộng tệp từ đường dẫn trong Laravel?
- Làm thế nào để kiểm tra Word tồn tại trong chuỗi hoặc không trong PHP?
- Làm thế nào để kiểm tra đối tượng trống hoặc không trong jQuery/javaScript?
- Php Curl Post yêu cầu với ví dụ tiêu đề
- Angularjs Php mysql ví dụ
Thể loại
- Laravel
- Góc
- PHP
- jQuery
- Python
- Bootstrap
- JavaScript
- Mysql
- Ajax
- Nút js
- HTML
- Ubuntu
- Codeigniter
- Bài của khách
- Vue.JS
- Phản ứng js
- Git
- Người phục vụ
- Json
- Cài đặt
- CSS
- Bản đồ Google
- SQL
- .htaccess
- API Google
- UI jQuery
- Typeahhead js
- Axios
- Socket.io
- Elaticsearch
Bài viết mới nhất
- Kiểm tra Laravel nếu dữ liệu mối quan hệ là ví dụ trống
- Làm thế nào để xóa các thẻ HTML khỏi chuỗi trong Laravel?
- Laravel TCPDF: Tạo ví dụ về tệp HTML đến PDF
- Laravel xóa tệp sau khi tải xuống ví dụ phản hồi
- Làm thế nào để chụp ảnh màn hình trình duyệt ở Laravel?