IP adresi ':: 1' nedir?


108

Ağ bağlantısı olmayan yerel makinede soketlerle oynuyordum. Aşağıya bakınız:

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

Peki ::1IP adresi tam olarak nedir? Varsayılan kullanılabilir IP adresi mi yoksa geri döngü adresi mi? Özel IP adresi ve ağ bağlantısı olan bir makinede yukarıdaki koda (çalışma hattı) ne olur?

DÜZENLE:

kesin kod, belirli bir IP adresini sokete bağlamak için kullanılır. İşte burada:

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.Anyolduğunu ::0Sen kullanmalıdır, IPAddress.Loopbackyerel (geridöngü) bağlantısı için.
J-16 SDiZ

Sanırım bu, SuperUser.com
Kamyar'da

Yazan kısmın IPAddress.Parsgerçekten olduğunu varsayıyorum IPAddress.Parse, doğru mu?
Brad

Yanıtlar:


151

::1IPv6'daki geri döngü adresidir. Bunu IPv6 sürümü olarak düşünün 127.0.0.1.

Bkz. Http://en.wikipedia.org/wiki/Localhost


1
Yukarıdaki örnekte IPAddress.Parse("127.0.0.1")benim makinemde çalışmıyor.
Xaqron

1
@Xaqron - bu daha çok bir süper kullanıcı sorusuna benziyor, çünkü muhtemelen IPv4 TCP / IP yığınınızla ilgili bir şeyin bozuk olduğu anlamına geliyor.
Joel Coehoorn

Xaqron, belki bir güvenlik duvarı v4'ü engelliyor ama v6 trafiğini engelliyor olabilir mi?
SilverbackNet

Kullanıyorum Windows Server 2008 Enterprise Edition 64-bitve üçüncü taraf güvenlik duvarı yüklenmemiş. Müsait 127.0.0.1durumdayken neden soketime bağlanamadığımı merak ediyorum ::1.
Xaqron

@Xaqron, kullanmaya çalıştığınız kodunuzu bize gösterebilir misiniz? "Çalışıyor" ve "çalışmıyor" diyorsunuz ama bu bize yardımcı olmuyor.
Brad

18

Biraz daha fazla bilgi eklemek için, IPv6'da geridöngü adresi 127 sıfır ve ardından 1 yani (0000 ... 127 kez.1) ile temsil edilir. Temsili şöyle olmalıydı -> 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001 ama bunun için bazı kısa form temsillerimiz var. Tek bir blokta tüm sıfırlar varsa, onu tek 0 ile değiştirebilirsiniz. Böylece -> 0: 0: 0: 0: 0: 0: 0: 0001 olur . Yine, sıfır dizilerimiz olduğunu görebiliriz, bunlar elenebilir ve -> :: 0001 -> :: 1 elde ederiz .


2
(açık olmak gerekirse, buradaki "127 sıfır" onaltılık değil, ikili
biçimdedir
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.