Tại sao localhost của tôi không phải là 127.0.0.1 mà là :: 1, và ký hiệu đó là gì? [bản sao]


62

Khi tôi sử dụng lệnh Ping đối với localhost của mình (trên Windows Vista), nó không hiển thị dưới dạng 127.0.0.1.

C: \ Windows \ system32> ping localhost
Pinging GIGA [:: 1] từ :: 1 với 32 byte dữ liệu:

bóng bàn

Thay vào đó, nó hiển thị dưới dạng ::1(cặp dấu hai chấm và một). Đây là loại ký hiệu gì? Và tại sao nó không hiển thị dưới dạng 127.0.0.1?

Đây là những gì tôi thấy trong c:\windows\system32\drivers\etc\hoststập tin.

:: 1 localhost
127.0.0.1 localhost

Theo đề xuất của Gregg, tôi đã thử thay đổi thứ tự này.

127.0.0.1 localhost
:: 1 localhost

Kết quả dự kiến ​​là 127.0.0.1sẽ được ưu tiên hơn ::1nhưng đó không phải là trường hợp.

Như tôi đã học bây giờ, điều này có thể được thực hiện bằng cách thêm một chính sách tiền tố thay thế. Để buộc cmd sử dụng IP phiên bản 4, tùy chọn -4có thể được sử dụng. Để buộc Windows luôn sử dụng IP phiên bản 4, IP phiên bản 6 hoặc một số thành phần của nó có thể bị vô hiệu hóa thông qua hộp thoại thuộc tính cho bộ điều hợp mạng hoặc thông qua một chỉnh sửa đăng ký .


7
Trong câu trả lời của Tom Wijsman, bạn sẽ tìm ra superuser.com/questions/414050/ế
Rudolph

1
IPv6 không chỉ không có gì đặc biệt hay mã hóa cứng localhost; nó được xác định trong HOSTStập tin . Theo 127.0.0.1mặc định, nhưng bạn có thể thay đổi nó thành bất cứ điều gì bạn muốn hoặc loại bỏ nó hoàn toàn.
Synetech

1
@Synetech trên Windows 7, nó được nhận xét theo mặc định với một ghi chú:localhost name resolution is handled within DNS itself.
gronostaj

Câu trả lời:


90

Điều này là do ping trên Windows Vista và Windows mới hơn sử dụng IPv6 theo mặc định khi khả dụng. ::1là một ký hiệu rút gọn của địa chỉ loopback IPv6 - tương đương với loopback IPv4 127.0.0.1.

Ký hiệu đầy đủ của ::1địa chỉ IPv6 viết tắt là 0000:0000:0000:0000:0000:0000:0000:0001.

Nếu bạn muốn buộc pingsử dụng IPv4 thay vào đó, bạn có thể chỉ định rõ ràng địa chỉ IPv4 hoặc sử dụng -4tùy chọn.

ping 127.0.0.1
ping -4 localhost

Nếu bạn muốn thay đổi toàn bộ tùy chọn IPv6 / IPv4, bạn có thể kiểm tra mức độ ưu tiên của IPv4 so với IPv6 trong Windows 7 .

Để biết thêm thông tin, bạn cũng có thể xem bài viết localhost .


18

[::1]là tốc ký cho địa chỉ loopback trong IPv6. Nếu bạn muốn tắt IPv6 vì một số lý do (tôi không khuyên bạn, nhưng bạn có thể có một lý do cụ thể để muốn nó), tất cả những gì bạn cần làm là như sau (đối với Windows 7):

  • Bắt đầu, bảng điều khiển
  • Mạng và chia sẻ
  • Xem mạng hoạt động, kết nối khu vực địa phương, thuộc tính
  • Bỏ chọn hộp kiểm bên cạnh Giao thức mạng Internet Phiên bản 6

Nếu bạn thích ảnh chụp màn hình, có thể tìm thấy hướng dẫn từ Microsoft tại đây: link .

Ngoài ra, bạn cũng có thể muốn xem Trang Wikipedia cho IPv6, cụ thể, Bản trình bày :

Địa chỉ localhost (loopback), 0: 0: 0: 0: 0: 0: 0 và địa chỉ không xác định IPv6, 0: 0: 0: 0: 0: 0: 0: 0, được giảm xuống :: 1 và :: tương ứng. Sự thay thế hai dấu hai chấm này chỉ có thể được áp dụng một lần trong một địa chỉ, bởi vì nhiều lần xuất hiện sẽ tạo ra một đại diện mơ hồ.

Tóm lại, về cơ bản, điều này tương đương với việc muốn viết mỗi số từ 1 đến 100, nhưng thay vì viết ra từng số riêng lẻ, thay vào đó bạn viết 1, 2, 3...99, 100hoặc1-100

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.