2012-03-16 10 views

Odpowiedz

11

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

+0

dzięki :) Wynik ciągu = input.substring (0, input.lastIndexOf (".")) + "."; –

5

Korzystanie z String.LastIndexOf(), powinno być łatwe.

EDYTOWANIE
Za pomocą tej metody można znaleźć ostatnie ".". Następnie potrzebujesz podciągu do i (podobno) włączenia tego ".". Coś jak:

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

Jeśli musi zawierać ".", To czy powinno to być 'lastIndexOf' + 1? –

+0

@ Moo-Juice - masz rację, zaktualizowano –

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 tak, tak, zapomniałem o tym .. Edytowałem odpowiedź –

0

Wewnętrznie, adresy IP (IPv4 i IPv6) są tylko ciągi bitów. IPv4 pasuje do 32 bitów, a IPv6 pasuje do 64 bitów. Tak więc prawdziwą odpowiedzią na twoje pytanie jest po prostu zamaskowanie bitów, które chcesz nadal używać logicznej operacji ORAZ pozostałych. 0.

W większości sytuacji można określić adres IP razem z maską. Zasadą jest, aby zapytać, czy A jest takie samo jak B, sprawdza bity, dla których bit maski jest prawdziwy.

Prowadzi to do wspólnego zapisu: ludzie piszą adres IP jak 124.51.3/17, aby powiedzieć, że pierwsza część opisuje adres IP (może IPv4), a że/17 oznacza, że ​​pierwsze 17 bitów to te pierwsze rozważyć.

Powiązane problemy