Apa itu alamat IP ':: 1'?


107

Saya bermain dengan soket di mesin lokal tanpa koneksi jaringan. Lihat di bawah:

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

Jadi apa sebenarnya ::1alamat IP itu? Apakah ini alamat IP default yang tersedia atau alamat loopback? apa yang terjadi dengan kode di atas (jalur kerja) pada mesin dengan alamat IP khusus dan koneksi jaringan?

EDIT:

kode tepat digunakan untuk mengikat alamat IP tertentu ke soket. Ini dia:

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.Anyadalah ::0, Anda harus menggunakan IPAddress.Loopbackuntuk koneksi lokal (loopback).
J-16 SDiZ

Saya pikir ini seharusnya telah diposting di SuperUser.com
Kamyar

Saya berasumsi bagian yang mengatakan IPAddress.Parsbenar IPAddress.Parse, benar?
Brad

Jawaban:


150

::1adalah alamat loopback di IPv6. Anggap saja sebagai versi IPv6 127.0.0.1.

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


1
pada contoh di atas IPAddress.Parse("127.0.0.1")tidak berfungsi di mesin saya.
Xaqron

1
@Xaqron - kedengarannya lebih seperti pertanyaan superuser, karena itu mungkin berarti ada sesuatu yang rusak dengan tumpukan IPv4 TCP / IP Anda.
Joel Coehoorn

Xaqron, mungkin firewall memblokir lalu lintas v4 tetapi bukan v6?
SilverbackNet

Saya menggunakan Windows Server 2008 Enterprise Edition 64-bitdan tidak ada firewall pihak ketiga yang terpasang. Saya bertanya-tanya mengapa saya tidak bisa mengikat 127.0.0.1ke soket saya saat ::1tersedia.
Xaqron

@Xaqron, dapatkah Anda menunjukkan kepada kami kode yang Anda coba gunakan? Anda mengatakan "berhasil" dan "tidak berfungsi" tetapi itu tidak membantu kami.
Brad

18

Hanya untuk menambahkan lebih banyak info ke dalamnya, dalam alamat loopback IPv6 direpresentasikan sebagai 127 nol diikuti oleh 1 yaitu (0000 ... 127 kali..1). Representasinya seharusnya seperti ini -> 0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001 tetapi kami memiliki beberapa representasi bentuk singkat untuk ini. Jika ada semua nol dalam satu blok, Anda dapat menggantinya dengan satu 0. Jadi menjadi -> 0: 0: 0: 0: 0: 0: 0: 0001 . Sekali lagi kita dapat melihat bahwa kita memiliki angka nol, mereka dapat dihilangkan dan kita mendapatkan -> :: 0001 -> :: 1 .


2
(untuk memperjelas, "127 nol" di sini adalah dalam biner, bukan heksadesimal)
pengguna202729
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.