Що таке IP-адреса ':: 1'?


107

Я грав у розетках на локальній машині, без підключення до мережі. Дивись нижче:

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

Отже, що саме ::1IP-адреса? Це доступна за замовчуванням IP-адреса або це адреса петлі? що відбувається з вищевказаним кодом (робочою лінією) на машині з виділеною IP-адресою та мережевим підключенням?

Редагувати:

точний код використовується для прив’язки конкретної IP-адреси до сокета. Ось:

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, Ви повинні використовувати IPAddress.Loopbackдля локального (петлевого) з'єднання.
J-16 SDiZ

Я думаю, це повинно було бути розміщено на
SuperUser.com

Я припускаю, що частина, яка говорить IPAddress.Pars, справді IPAddress.Parse, правда?
Бред

Відповіді:


150

::1- адреса зворотного зв'язку в IPv6. Подумайте про це як версію IPv6 127.0.0.1.

Дивіться http://en.wikipedia.org/wiki/Localhost


1
приведений вище приклад IPAddress.Parse("127.0.0.1")не працює на моїй машині.
Xaqron

1
@Xaqron - це більше нагадує питання про суперпользователя, оскільки це, ймовірно, означає, що щось порушено з вашим стеком IPv4 TCP / IP.
Joel Coehoorn

Xaqron, можливо, брандмауер блокує v4, але не трафік v6?
SilverbackNet

Я використовую Windows Server 2008 Enterprise Edition 64-bitі не встановлений сторонній брандмауер. Мені цікаво, чому я не можу прив’язатись 127.0.0.1до свого розетки, поки ::1він доступний.
Xaqron

@Xaqron, чи можете ви показати нам свій код, який ви намагаєтесь використовувати? Ви кажете "працює" і "не працює", але це нам не допомагає.
Бред

18

Для того, щоб додати до нього трохи більше інформації, у IPv6 адреса зворотного зв'язку представляється у вигляді 127 нулів, а потім 1, тобто (0000 ... 127 разів..1). Це представлення повинно було бути таким -> 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001, але для цього у нас є коротка форма подання. Якщо в одному блоці є всі нулі, ви можете замінити його одиничним 0. Так це стає -> 0: 0: 0: 0: 0: 0: 0: 0001 . Знову ми бачимо, що у нас є прогони нулів, їх можна усунути, і ми отримаємо -> :: 0001 -> :: 1 .


2
(зрозуміло, "127 нулів" тут є у двійковій, а не в шістнадцятковій
формі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.