2012-03-16 14 views

risposta

11

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

+0

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

5

Utilizzare String.LastIndexOf(), dovrebbe essere facile.

EDIT
Usando questo metodo è possibile individuare l'ultimo ''. Quindi hai bisogno di una sottostringa fino a (apparentemente) inclusa ".". Qualcosa di simile:

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

Se ha bisogno di includere il '.', dovrebbe essere 'lastIndexOf' + 1? –

+0

@ Moo-Juice - hai ragione, aggiornato –

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.Disappointment hai ragione me lo sono dimenticato .. Ho modificato la risposta –

0

Internamente, gli indirizzi IP (IPv4 e IPv6) sono solo morso stringhe. IPv4 si adatta a 32 bit e IPv6 si adatta a 64 bit. Quindi la vera risposta alla tua domanda è semplicemente mascherare i bit che vuoi mantenere usando un'operazione AND logica e avere gli altri 0. 0.

Nella maggior parte dei casi, puoi specificare un indirizzo IP insieme a una maschera. La regola è che per chiedere se A è uguale a B, si controllano i bit per i quali il bit della maschera è vero.

Questo porta a una notazione comune: le persone scrivono un indirizzo IP come 124.51.3/17 per dire che la prima parte descrive un indirizzo IP (forse IPv4) e che il/17 significa che i primi 17 bit sono quelli considerare.

Problemi correlati