Địa chỉ IP ':: 1' là gì?


107

Tôi đang chơi với ổ cắm trên máy cục bộ không có kết nối mạng. Xem bên dưới:

IPAddress address = IPAddress.Any; // doesn't work
IPAddress address = IPAddress.Parse("::1"); // works

Vậy ::1địa chỉ IP chính xác là gì? Đó là địa chỉ IP có sẵn mặc định hay là địa chỉ lặp lại? Điều gì xảy ra với đoạn mã trên (dòng làm việc) trên một máy có địa chỉ IP chuyên dụng và kết nối mạng?

BIÊN TẬP:

mã chính xác được sử dụng để liên kết một địa chỉ IP cụ thể với ổ cắm. Nó đây:

ServicePoint sp = ServicePointManager.FindServicePoint(uri);
sp.BindIPEndPointDelegate = new BindIPEndPoint(Bind);
// here's the bind delegate:
private IPEndPoint Bind(ServicePoint sp, IPEndPoint ep, int retryCount)
{
   return new IPEndPoint(IPAddress.Parse("::1"), 0);
}

4
IPAddress.Any::0, Bạn nên sử dụng IPAddress.Loopbackcho kết nối cục bộ (loopback).
J-16 SDiZ

Tôi nghĩ rằng điều này nên đã được đăng tải trên SuperUser.com
Kamyar

Tôi giả sử phần nói IPAddress.Parslà thực sự IPAddress.Parse, chính xác?
Brad

Câu trả lời:


150

::1là địa chỉ lặp lại trong IPv6. Hãy coi nó là phiên bản IPv6 của 127.0.0.1.

Xem http://en.wikipedia.org/wiki/Localhost


1
ở ví dụ trên IPAddress.Parse("127.0.0.1")không hoạt động trên máy của tôi.
Xaqron

1
@Xaqron - nghe giống như một câu hỏi siêu người dùng hơn, vì nó có thể có nghĩa là có gì đó bị hỏng với ngăn xếp IPv4 TCP / IP của bạn.
Joel Coehoorn

Xaqron, có thể tường lửa đang chặn v4 nhưng không chặn lưu lượng v6?
SilverbackNet

Tôi sử dụng Windows Server 2008 Enterprise Edition 64-bitvà không có tường lửa của bên thứ ba được cài đặt. Tôi tự hỏi tại sao tôi không thể liên kết 127.0.0.1với ổ cắm của mình khi ::1có sẵn.
Xaqron

@Xaqron, bạn có thể cho chúng tôi xem mã mà bạn đang cố gắng sử dụng không? Bạn nói "hoạt động" và "không hoạt động" nhưng điều đó không hữu ích cho chúng tôi.
Brad

18

Chỉ cần thêm một chút thông tin vào nó, trong địa chỉ loopback IPv6 được biểu thị bằng 127 số 0 theo sau là 1 tức là (0000 ... 127 lần..1). Biểu diễn của nó lẽ ra phải như thế này -> 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001 nhưng chúng tôi có một số biểu diễn dạng ngắn cho điều này. Nếu có tất cả các số 0 trong một khối, bạn có thể thay thế nó bằng 0. Vì vậy, nó trở thành -> 0: 0: 0: 0: 0: 0: 0: 0001 . Một lần nữa, chúng ta có thể thấy rằng chúng ta có các số 0, chúng có thể bị loại bỏ và chúng ta nhận được -> :: 0001 -> :: 1 .


2
(để rõ ràng, "127 số 0" ở đây là hệ nhị phân, không phải hệ thập lục phân)
user202729,
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.