Tại sao URL này với các dấu chấm trước quá mức phân giải thành địa chỉ IP?


31

http://.................1168951531

Mà khi đưa vào chrome, xem trước URL http://69.172.200.235/, chuyển hướng (theo mã phản hồi của máy chủ bên ngoài 3XX) www.test.com, nhưng điều đó nằm ngoài phạm vi của những gì tôi đang cố gắng tìm ra.

Làm thế nào để một URL kỳ lạ như trên giải quyết được một địa chỉ IP? Đây có phải là một quy tắc định dạng?


2
Lưu ý rằng cùng một URL không có dấu chấm cũng hoạt động trong Chrome : http://1168951531. Nhưng điều đó đặt ra câu hỏi, tại sao Chrome lại bỏ qua các dấu chấm?
wjandrea

6
@wjandrea Tôi đoán Chrome diễn giải chúng dưới dạng tên miền phụ và thực tế không bỏ qua chúng. Bạn có thể kiểm tra xem bằng cách xem tiêu đề Máy chủ của chrome yêu cầu gửi.
Christoph

1
Một chút tiếp tuyến, nhưng địa chỉ Gmail cho phép bạn thêm nhiều dấu chấm như bạn muốn, mà không gây ra vấn đề và cả dấu + với bất kỳ văn bản nào sau khi bạn muốn. Vì vậy, abcd@gmail.comcũng sẽ nhận được thư được gửi đến a.b.c.d@gmail.comhoặc abcd+junkmail@gmail.com- và một lợi ích là cung cấp các email khác nhau cho các trang web khác nhau để xem ai đưa bạn vào danh sách thư rác hoặc thiết lập quy tắc để xử lý thư đến theo các cách khác nhau tùy thuộc vào địa chỉ "Tới". ( Thêm ) Hoặc, kylesmom @ gmail hiện là kylesmom + is.a.big.fa ...
ashleedawg

Đối với những gì nó có giá trị, sự kết hợp giữa Firefox và mực không cho phép điều này; Firefox vượt qua các dấu chấm thông qua nguyên văn và lỗi mực vì đó là định dạng URL không hợp lệ. Vì vậy, điều này có vẻ như là một lỗi Chrome, hoặc có thể thông số kỹ thuật liên quan đến các tên miền trống là mơ hồ?
Paul Gear

Câu trả lời:


44

Chrome đang hiểu số 1168951531 là số thập phân, khi được biểu thị dưới dạng thập lục phân là 45ACC8EB. 45ACC8EB trong hex giống như số thập phân rải rác 69.172.200.235, khi bạn lấy mỗi cặp chữ số hex làm một số thập phân.

45 -> 69
AC -> 172
C8 -> 200
EB -> 235

Câu trả lời ngắn: Đó là biểu diễn thập phân thuần túy của cùng một địa chỉ IP.


4
Firefox cũng giải thích (không có dấu chấm), nhưng không phải là Edge.
JAB

11
Mã nguồn điển hình để phân giải tên máy chủ trước tiên là kiểm tra xem đó có phải là địa chỉ IP không (ví dụ như với inet_addr()) và nếu không, hãy chuyển nó đến một chức năng như thế gethostname()để thẩm vấn các máy chủ DNS (và đọc hoststệp). Vượt qua một đại diện thập phân của địa chỉ IP, như được giải thích trong câu trả lời ở trên, là hoàn toàn hợp pháp trong hầu hết các triển khai. Tôi có thể gõ ping 1168951531vào một thiết bị đầu cuối, và nó thực sự ping địa chỉ dự định. Nó trở nên kỳ lạ hơn với tất cả các dấu chấm ở phía trước, nhưng có thể Chrome đang xóa chúng trước khi thử độ phân giải.
Ale

1
Điều đáng chú ý là cả Chrome và Firefox đều chấp nhận URL mà không có dấu chấm. ( http://1168951531)
Stevoisiak

3

Đây là một đại diện dài của một địa chỉ ipv4 của ip 69.172.200.235. Bản đồ nào đến miền www.test.com.


4
Bạn có thể giải thích "đại diện dài" là gì không?
Philipp

2
Nó được giải thích tốt hơn bởi câu trả lời khác, nhưng nó vẫn sôi sục với điều tương tự.
Gothrek

9
Có lẽ nên là " longđại diện"
n0rd
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.