Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 18952|Odpowiedź: 3

[WinForm] C# określa segment IP do generowania adresu IP

[Skopiuj link]
Opublikowano 14.12.2015 15:01:40 | | | |


  1. private void button1_Click(object sender, EventArgs e)  
  2.         {  
  3.             string StartIp = "";  
  4.             string EndIp = "";  
  5.             StartIp = Startinput.Text;  
  6.             EndIp = Endinput.Text;  
  7.             uint iStartip = ipTint(StartIp);  
  8.             uint iEndIp = ipTint(EndIp);  
  9.             //string ip_result="";  
  10.             StringBuilder ip_result=new StringBuilder();  
  11.             if (iEndIp >= iStartip)  
  12.             {  
  13.                 for (uint ip = iStartip; ip <= iEndIp; ip++)  
  14.                 {  
  15.                     ip_result.Append(intTip(ip)).Append("\r\n");  
  16.                     //ip_result = ip_result + intTip(ip)+"\r\n";  
  17.                 }  
  18.                 resultTextBox.Text = ip_result.ToString();   //RichTextBox  
  19.             }  
  20.             else  
  21.             {  
  22.                 MessageBox.Show("天啊,起始ip居然比终止ip还大");  
  23.             }  
  24.         }  
  25.         public static uint ipTint(string ipStr)  
  26.         {  
  27.             string[] ip = ipStr.Split('.');  
  28.             uint ipcode = 0xFFFFFF00 | byte.Parse(ip[3]);  
  29.             ipcode = ipcode & 0xFFFF00FF | (uint.Parse(ip[2]) << 0x8);  
  30.             ipcode = ipcode & 0xFF00FFFF | (uint.Parse(ip[1]) << 0xF);  
  31.             ipcode = ipcode & 0x00FFFFFF | (uint.Parse(ip[0]) << 0x18);  
  32.             return ipcode;  
  33.         }  
  34.         public static string intTip(uint ipcode)  
  35.         {  
  36.             byte a = (byte)((ipcode & 0xFF000000) >> 0x18);  
  37.             byte b = (byte)((ipcode & 0x00FF0000) >> 0xF);  
  38.             byte c = (byte)((ipcode & 0x0000FF00) >> 0x8);  
  39.             byte d = (byte)(ipcode & 0x000000FF);  
  40.             string ipStr = string.Format("{0}.{1}.{2}.{3}", a, b, c, d);  
  41.             return ipStr;  
  42.         }  
Skopiuj kod






Poprzedni:C# WPF wykorzystuje ZXing do generowania kodów QR Wprowadzenie do ImageSource
Następny:Wejście dwucyfrowej tablicy znaków jest sortowane w momencie wykonania wyjścia
Opublikowano 14.12.2015 15:54:44 |
 Ziemianin| Opublikowano 31.12.2015 16:25:19 |
Jeśli w wygenerowanym powyżej adresie IP wystąpi błąd, należy użyć następującej metody

  1. #region ip转换
  2.         /// <summary>
  3.         /// ip转成long
  4.         /// </summary>
  5.         /// <param name="ip"></param>
  6.         /// <returns></returns>
  7.         public static long IpToInt(string ip)
  8.         {
  9.             char[] separator = new char[] { '.' };
  10.             string[] items = ip.Split(separator);
  11.             return long.Parse(items[0]) << 24
  12.                     | long.Parse(items[1]) << 16
  13.                     | long.Parse(items[2]) << 8
  14.                     | long.Parse(items[3]);
  15.         }
  16.         /// <summary>
  17.         /// long转成ip
  18.         /// </summary>
  19.         /// <param name="ipInt"></param>
  20.         /// <returns></returns>
  21.         public static string IntToIp(long ipInt)
  22.         {
  23.             StringBuilder sb = new StringBuilder();
  24.             sb.Append((ipInt >> 24) & 0xFF).Append(".");
  25.             sb.Append((ipInt >> 16) & 0xFF).Append(".");
  26.             sb.Append((ipInt >> 8) & 0xFF).Append(".");
  27.             sb.Append(ipInt & 0xFF);
  28.             return sb.ToString();
  29.         }
  30.         #endregion
Skopiuj kod


Opublikowano 02.01.2016 15:11:56 |
Nauczyłem się, dziękuję za podzielenie się
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com