Ho bisogno di tagliare un dato IPAddress per ottenere i primi 3 parti di essocome tagliare la stringa Indirizzo IP per ottenere le prime 3 parti di esso?
come: "192.168.1"
"192.168.1.20" ➨
"29.6.60.241" ➨ "29.6.60."
grazie in anticipo.
Ho bisogno di tagliare un dato IPAddress per ottenere i primi 3 parti di essocome tagliare la stringa Indirizzo IP per ottenere le prime 3 parti di esso?
come: "192.168.1"
"192.168.1.20" ➨
"29.6.60.241" ➨ "29.6.60."
grazie in anticipo.
String result = input.substring(0,input.lastIndexOf("."));
grazie :) String result = input.substring (0, input.lastIndexOf (".")) + "."; –
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);
Se ha bisogno di includere il '.', dovrebbe essere 'lastIndexOf' + 1? –
@ Moo-Juice - hai ragione, aggiornato –
string ip= "192.168.1.100";
string partial = ip.Substring(0,ip.LastIndexOf("."));
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]);
}
}
@ Mr.Disappointment hai ragione me lo sono dimenticato .. Ho modificato la risposta –
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.
E gli indirizzi IPv6? –
@ Mr.Disappointment, il tuo alias precede i tuoi commenti: D –