2012-03-16 21 views

Respuesta

11

String result = input.substring(0,input.lastIndexOf("."));

+0

gracias :) String result = input.substring (0, input.lastIndexOf (".")) + "."; –

5

Usando String.LastIndexOf(), debería ser fácil.

EDITAR
Usando ese método puede localizar la última ''. Entonces necesitas una subcadena hasta (aparentemente) incluyendo eso '.'. Algo así como:

string shortened = longIP.Substring(0,longIP.LastIndexOf(".")+1); 
+0

Si necesita incluir el '.', entonces ¿debería ser' lastIndexOf' + 1? –

+0

@ Moo-Juice - tienes razón, actualizado –

2
string ip= "192.168.1.100"; 
string partial = ip.Substring(0,ip.LastIndexOf(".")); 
0
string sHostName = Dns.GetHostName(); 
IPHostEntry ipE = Dns.GetHostByName(sHostName); 
IPAddress[] IpA = ipE.AddressList; 
for (int i = 0; i < IpA.Length; i++) 
{ 
    if(IpA[i].AddressFamily == AddressFamily.InterNetwork) 
    { 
     Console.WriteLine("IP Address {0}: {1} {2} ", i, IpA[i].ToString() , sHostName); 
     string[] x = IpA[i].ToString().Split('.'); 
     Console.WriteLine("{0}.{1}.{2}.", x[0], x[1], x[2]); 
    } 
} 
+0

@ Mr. Dispointment, sí, tienes razón, lo olvidé ... He editado la respuesta –

0

Internamente, las direcciones IP (IPv4 e IPv6) son sólo mordió cuerdas. IPv4 se adapta a 32 bits e IPv6 se adapta a 64 bits. Entonces, la verdadera respuesta a su pregunta es simplemente enmascarar los bits que desea mantener usando una operación lógica Y y los otros deben ser 0.

En la mayoría de las situaciones, usted debe especificar una dirección IP junto con una máscara. La regla es que para preguntar si A es lo mismo que B, se verifican los bits para los cuales el bit de máscara es verdadero.

Esto lleva a una notación común: las personas escriben una dirección IP como 124.51.3/17 para decir que la primera parte describe una dirección IP (tal vez IPv4) y que el/17 significa que los primeros 17 bits son los que considerar.

Cuestiones relacionadas