2011-01-06 33 views
73

Estaba jugando con enchufes en la máquina local sin conexión de red. Vea a continuación:¿Qué es la dirección IP ':: 1'?

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

Entonces, ¿qué es exactamente la dirección IP ::1? ¿Es la dirección IP disponible por defecto o es la dirección de bucle invertido? ¿Qué sucede con el código anterior (línea de trabajo) en una máquina con dirección IP dedicada y conexión de red?

EDIT:

código exacto se utiliza para enlazar una dirección IP específica a la toma. Aquí está:

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' es' :: 0', debe usar 'IPAddress.Loopback' para conexión local (loopback). –

+0

Creo que esto debería haber sido publicado en SuperUser.com – Kamyar

+0

Supongo que la parte que dice 'IPAddress.Pars' es realmente' IPAddress.Parse', ¿correcto? – Brad

Respuesta

100

::1 es la dirección de bucle de retorno en IPv6. Piénselo como la versión IPv6 de 127.0.0.1.

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

+1

en el ejemplo anterior 'IPAddress.Parse (" 127.0.0.1 ")' no funciona en mi máquina. – Xaqron

+1

@Xaqron: eso suena más como una pregunta de superusuario, porque probablemente significa que algo está roto con tu pila de IPv4 TCP/IP. –

+0

'IPAddress.Any' resuelve a 0.0.0.0 – Brad

5

sólo para añadir poco más de información a la misma, en dirección de bucle invertido de IPv6 se representa como 127 ceros seguidos de un 1 es decir (0000 ... 127 times..1). Su representación debería haber sido así ->0000: 0000: 0000: 0000: 0000: 0000: 0000: 0001, pero tenemos una breve representación del formulario para esto. Si hay todos ceros en un solo bloque, puede reemplazarlo por un solo 0. Entonces se convierte en ->0: 0: 0: 0: 0: 0: 0: 0001. De nuevo podemos ver que tenemos corridas de ceros, se pueden eliminar y obtenemos ->:: 0001 ->:: 1.