Kiểu dữ liệu nào được sử dụng cho địa chỉ IP?

Xin chào, tôi hiện đang làm việc trên một danh sách cấm và tôi đang suy nghĩ về việc chọn loại dữ liệu nào để lưu trữ địa chỉ IP trong cơ sở dữ liệu. Kiểu dữ liệu nhị phân có lý tưởng không?

mysql

0 0

Chia sẻ

  • 5 Cộng tác viên
  • 4 Trả lời
  • 337 Lượt xem
  • 2 tuần Khoảng thời gian thảo luận
  • Bài đăng mới nhất Bài đăng mới nhất của Vikas_30

Câu trả lời được đề xuất

Đã trả lời bởi Dani 3.354 trong một

Hiện tại tôi lưu trữ địa chỉ IP dưới dạng Varchar

Nhị phân dành cho dữ liệu nhị phân như hình ảnh, tệp thực thi, v.v. không phải văn bản

Tất cả 4 câu trả lời

Kiểu dữ liệu nào được sử dụng cho địa chỉ IP?

rproffitt 2.382 "Không có gì để xem ở đây. " Người điều hành

1 năm trước

Tôi đang đọc https. //www. daniweb. com/programming/databases/threads/510152/the-best-way-to-store-ipv4-ipv6 cũng tiết lộ INET6_ATON và có thể chức năng khác mà bạn sẽ sớm hỏi về

0 0

Chia sẻ

Kiểu dữ liệu nào được sử dụng cho địa chỉ IP?
Nhìn thấy lần cuối 20 giờ trước

Dani 3.354 Nữ hoàng của DaniWeb Quản trị viên Áp phích nổi bật Premium Member

1 năm trước

Hiện tại tôi lưu trữ địa chỉ IP dưới dạng Varchar

Nhị phân dành cho dữ liệu nhị phân như hình ảnh, tệp thực thi, v.v. không phải văn bản

1 0

Chia sẻ

Kiểu dữ liệu nào được sử dụng cho địa chỉ IP?

jwenting 1.855 người chăn vịt Đồng nghiệp nhóm

1 năm trước

Lưu trữ chúng dưới dạng chuỗi. Trừ khi bạn muốn thực hiện chuyển đổi chuỗi thành số mỗi lần biến biểu diễn chuỗi quen thuộc thành định dạng số của nó, đó là cách nên làm

Nếu bạn muốn lưu trữ địa chỉ IP trong cơ sở dữ liệu mysql thì đừng nhầ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 UNSIGNED 4(BYTE). sử dụng kiểu dữ liệu số nguyên, bạn có thể tiết kiệm nhiều dung lượng hơn trong cơ sở dữ liệu

khi bạn kích hoạt truy vấn chèn tại thời điểm đó, hãy sử dụng INET_ATON() và chọn truy vấn tại thời điểm đó, sử dụng INET_NTOA(). làm thế nào để sử dụng chức năng này đưa ra 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, điều này rất đơn giản

Chúng tôi có thể lưu trữ một địa chỉ IP với sự trợ giúp của INT unsigned. Trong khi sử dụng INSERT, hãy thêm INET_ATON() và với SELECT, hãy thêm INET_NTOA(). Địa chỉ IP ở định dạng chấm

Hãy để chúng tôi xem một ví dụ

Tạo bảng

mysql> create table IPV4AddressDemo
   -> (
   -> `IPV4Address` INT UNSIGNED
   -> );
Query OK, 0 rows affected (0.52 sec)

Chèn địa chỉ IP vào bảng, với INET_ATON

mysql> insert into IPV4AddressDemo values(INET_ATON("120.0.0.1"));
Query OK, 1 row affected (0.17 sec)

Để hiển thị tất cả các bản ghi

mysql> select *from IPV4AddressDemo;

Sau đây là đầu ra, nhưng chắc chắn chúng tôi muốn nó ở định dạng địa chỉ IP

+-------------+
| IPV4Address |
+-------------+
|  2013265921 |
+-------------+
1 row in set (0.00 sec)

Vì đầu ra ở trên đưa ra một chuỗi các số nguyên, nhưng chúng ta có thể chuyển đổi chúng thành định dạng địa chỉ IP ban đầu. Đối với điều đó, hãy sử dụng INET_NTOA

Đây là một kiểu dữ liệu trừu tượng và không thể được sử dụng trực tiếp với các toán tử nhị phân hoặc nhị phân tiêu chuẩn C. Chỉ các biến cục bộ hoặc toàn cục kiểu ip_addr_t mới được hỗ trợ. Một biến thuộc loại này cũng có thể được lưu trữ trong một mảng liên kết dưới dạng khóa hoặc giá trị

Vue hỗ trợ các đặc điểm và hoạt động sau cho các biến loại địa chỉ IP

Khai báo biến địa chỉ IP

ip_addr_t i1;                               // global variable of type ip_addr_t 
__auto ip_addr_t i2;                        // auto variable of type 
ip_addr_t i2 = __ip4hdr->src_addr;          // store source IP address in a local ip_addr_t variable. 
ip_aso[“src_ip_addr”] = __ip4hdr->src_addr; // store in an associative array.

Các vòng loại đã ký, chưa ký, đăng ký, tĩnh, luồng và nhân không được hỗ trợ cho các biến loại ip_addr_t

thao tác gán

Toán tử gán (=) cho phép một biến loại ip_addr_t được gán cho một biến loại ip_addr_t khác và nó cũng cho phép gán địa chỉ IP hoặc tên máy chủ không đổi cho biến loại ip_addr_t. Các giá trị ban đầu của biến bị ghi đè. Không cho phép truyền kiểu từ hoặc đến các kiểu biến ip_addr_t

Trong ví dụ sau, nội dung của ip_addr_t i1 được gán cho i2. ________số 8_______

thao tác so sánh

Chỉ có đẳng thức (==) và bất đẳng thức (. toán tử =) được phép cho các biến loại ip_addr_t. Việc so sánh chỉ được phép giữa hai biến loại ip_addr_t và với loại chuỗi không đổi (địa chỉ IP hoặc tên máy chủ được cung cấp trong dấu ngoặc kép “192. 168. 1. 1” hoặc “ví dụ. com")

Kết quả của toán tử đẳng thức là True (1) nếu cả hai chứa cùng loại địa chỉ IP (IPV4 hoặc IPV6) và các giá trị. hoặc Sai (0) ngược lại. Toán tử bất đẳng thức là lời khen chính xác của điều đó. Không có toán tử so sánh nào khác (>=, >, < hoặc =<) được phép cho các biến loại ip_addr_t

if( i1 == i2)                     // comparing two ip_addr_t type variables.
																											//IP address string	 
printf(“IP addresses are equal”); 
else printf(“IP addresses are not equal”); 
or 
if( i1 == “192.168.1.1”)          // comparing ip_addr_t type variable and constant string.
 printf(“IP addresses are equal”); 
else printf(“IP addresses are not equal”);
or
if (i1 = “example.com”)          // comparing ip_addr_t type variable and constant       
                                 //IP address string
printf(“IP addresses are equal”); 
else printf(“IP addresses are not equal”);
 
In các biến loại địa chỉ IP

Biến loại ip_addr_t có thể được in bằng định dạng “%I” để in địa chỉ IP ở định dạng thập phân hoặc hex có dấu chấm và định dạng “%H” để in tên máy chủ trong hàm printf() của Vue. Tên máy chủ in này liên quan đến thao tác tra cứu dns tốn thời gian. Do đó, nó nên được sử dụng một cách thận trọng trong các tập lệnh VUE

Ghi chú. Khi người dùng sử dụng công cụ xác định định dạng “%H” để in tên máy chủ cho địa chỉ IP có thể không tồn tại trong dns, đối với những địa chỉ IP đó, nó sẽ in địa chỉ IP ở định dạng thập phân/hex chấm thay thế .

Một mảng kết hợp có các biến loại ip_addr_t là khóa hoặc giá trị (hoặc cả hai) có thể được in bằng hàm print().

printf(“ Source IP address=[%I]\n”, __ip4hdr->src_addr); 
ip_aso[“src_ip_address”] = __ip4hdr->src_addr ; // Store source IP address as value in an associative array 
print(ip_aso); 

Địa chỉ IP là chuỗi hay số nguyên?

Chà, hãy nhớ rằng địa chỉ IP là số nguyên không dấu 32 hoặc 128 bit và việc lưu trữ IP dưới dạng số nguyên có thể có nhiều lợi thế. . Số nguyên sử dụng ít không gian hơn. Nếu bạn đang sử dụng cơ sở dữ liệu, INT 32 bit chiếm 4 byte trong khi bạn sẽ cần 15 byte để lưu địa chỉ IP dưới dạng chuỗi.

Định dạng nào được sử dụng để lưu trữ địa chỉ IP?

Bộ tám hoặc phân đoạn, hoặc kết hợp cả hai, tạo thành địa chỉ Giao thức Internet phiên bản 4 (IPv4) và Giao thức Internet phiên bản 6 (IPv6)

Địa chỉ IP chứa dữ liệu gì?

Địa chỉ IP cho bạn biết điều gì? . Địa chỉ IP có thể cho bạn biết điều gì? . the city, ZIP code, or area code of your ISP, as well as your ISP's name. What can an IP address tell you? To some degree, your physical location and also the name of your ISP.

Kiểu dữ liệu của địa chỉ IP trong Java là gì?

Lớp này đại diện cho địa chỉ Giao thức Internet (IP). Địa chỉ IP là số không dấu 32 bit hoặc 128 bit được sử dụng bởi IP, một giao thức cấp thấp hơn trên đó các giao thức như UDP và TCP được sử dụng .